SWT Anfängerproblem.
-
Hi,
ich habe mit einer SWT Einführung angefangen und versuche nun das 2. Beispiel
ein wenig zuverändern. Leider habe ich in der Einführung nichts gefunden und durch die SWT API blicke ich (noch) nicht so ganz durch.Mein Frage handelt davon ob es möglich ist die Farben des Buttons oder der Schrift im nachfolgenden Beispiel zu ändern. Ich habe in der API die Funktion
setForeground(Color color) und setBackground(Color color); der Klasse Button gefunden. Allerdings bekomme ich sie nicht so recht zum laufen, da der Color Konstruktor ein Device device als 1. Parameter erwartet und ich nicht weiß was ich dort angeben soll.Der folgende Code ist fast in der ursprünglichen Version, also ohne Versuche die
Farbe zuändern.Es wäre schön wenn mir von euch jemand helfen könnte.
import org.eclipse.swt.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.events.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.graphics.*; class GuiManager { private Display display; private Shell shell; GuiManager() { display = new Display(); shell = new Shell(display, SWT.NONE); shell.setText("SWT Sample"); createGui(); shell.open(); while(!shell.isDisposed()) if(!display.readAndDispatch()) display.sleep(); } private void createGui() { shell.setLayout(new FillLayout()); Button b = new Button(shell, SWT.NONE); b.setText("Button No. 1"); b.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { shell.setText("Button No. 1 was clicked"); } } ); b.setFocus(); b = new Button(shell, SWT.NONE); b.setText("Button No. 2"); b.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { shell.setText("Button No. 2 was clicked"); } } ); } } public class swtsample2 { public static void main(String[] args) { new GuiManager(); } }
-
??? Wo setzt du die Farbe ???
Ich hab weder von Eclipse noch von SWT ne Ahnung, aber wenn du die Methoden nicht aufrufst, kommt natürlich kein Ergebnis raus...
Ich glaub auch nich dass man bei Buttons Farbe ändern kann. mit Swing würds auf jeden fall so gehen:import javax.swing.*; class PostingFrame extends JFrame { JLabel lbl; PostingFrame() { lbl = new JLabel("My Label"); :arrow_right: :arrow_right: lbl.setBackground(new java.awt.Color(/*rot, grün, blau*/ 255, 0, 0); } }
erzeugt einen Frame mit einem roten Label drin.
Hoff das hat dir irgnwie geholfenberdl
-
Hallo,
das Device fuer den Konstruktor von Color duerfte das aktuelle Display sein. Setze also display als Parameter ein und es duerfte gehen.
Noch ein kleiner Tipp:
shell.open(); while(!shell.isDisposed()) if(!display.readAndDispatch()) display.sleep();
Nimm das aus dem Konstruktor raus und mach dafuer eine eigene Methode!
Gruss
Drakos
-
berdl.de schrieb:
??? Wo setzt du die Farbe ???
Ich hab weder von Eclipse noch von SWT ne Ahnung, aber wenn du die Methoden nicht aufrufst, kommt natürlich kein Ergebnis raus...Ich hab doch geschrieben das ich die Versuche herausgenommen habe..
Naja, ist auch egal.Erstmal vielen Dank an euch beide!