Igeloeffnung
Grünschnabel
Hallo,
ich habe vor kurzem mit GUI-Programmierung in Java angefangen und habe mich für SWT entschieden.
Ich möchte in meinem Fenster eine "ExpandBar" einbauen und habe mir jetzt schon die Beispiele aus einigen Foren und der "Eclipse SWT" Seite angesehen.
Das einbauen und verändern der einzelnen Items ist ja kein Problem, mein Problem ist es die Größe der ExpandBar festzulegen. Wenn ich sie einbaue geht sie immer über das ganze Fenster, ich möchte es aber eher so wie bei WinXP haben, dass sie an der linken Fensterseite sitzt.
Hier mein Quellcode:
Nun die Frage, kann mir jemand verraten, wie ich die Größe der ExpandBar setzen kann bzw. einen Trick verraten, dass sie am linken Rand des Fensters sitzt...
Danke schonmal...
ich habe vor kurzem mit GUI-Programmierung in Java angefangen und habe mich für SWT entschieden.
Ich möchte in meinem Fenster eine "ExpandBar" einbauen und habe mir jetzt schon die Beispiele aus einigen Foren und der "Eclipse SWT" Seite angesehen.
Das einbauen und verändern der einzelnen Items ist ja kein Problem, mein Problem ist es die Größe der ExpandBar festzulegen. Wenn ich sie einbaue geht sie immer über das ganze Fenster, ich möchte es aber eher so wie bei WinXP haben, dass sie an der linken Fensterseite sitzt.
Hier mein Quellcode:
Code:
import java.awt.Dimension;
import java.awt.Toolkit;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.graphics.*;
import java.io.InputStream;
public class Client_GUI extends Thread{
private Display display;
private Shell shell;
private static final int x = 800;
private static final int y = 600;
private static final String prog_icon = "icons/prog_ico.png";
// Konstruktor
public Client_GUI(){
}
public void run(){
this.display = new Display();
this.shell = new Shell(display);
FillLayout layout = new FillLayout();
shell.setLayout(layout);
set_window_properties();
set_expand_bar();
shell.open();
while(! shell.isDisposed())
if(! display.readAndDispatch())
display.sleep();
}
private void set_window_properties(){
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
// setzen der Fenstergroesse
shell.setSize(x, y);
// Fenster in die Mitte des Bildschirms setzen
shell.setLocation((screenSize.width / 2)-(x / 2), (screenSize.height / 2) - (y / 2));
// Fenster Text setzen (Programmname)
shell.setText("Programm Titel");
// setzen des ProgrammIcons
InputStream stream = Client_GUI.class.getResourceAsStream(prog_icon);
Image image = new Image(display, stream);
shell.setImage(image);
}
private void set_expand_bar(){
ExpandBar bar = new ExpandBar (shell, SWT.V_SCROLL);
// First item
Composite composite = new Composite (bar, SWT.NONE);
GridLayout layout = new GridLayout ();
layout.marginLeft = layout.marginTop = layout.marginRight = layout.marginBottom = 10;
layout.verticalSpacing = 10;
composite.setLayout(layout);
Button button = new Button (composite, SWT.PUSH);
button.setText("SWT.PUSH");
button = new Button (composite, SWT.RADIO);
button.setText("SWT.RADIO");
button = new Button (composite, SWT.CHECK);
button.setText("SWT.CHECK");
button = new Button (composite, SWT.TOGGLE);
button.setText("SWT.TOGGLE");
ExpandItem item0 = new ExpandItem (bar, SWT.NONE, 0);
item0.setText("What is your favorite button");
item0.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
item0.setControl(composite);
}
}
Nun die Frage, kann mir jemand verraten, wie ich die Größe der ExpandBar setzen kann bzw. einen Trick verraten, dass sie am linken Rand des Fensters sitzt...
Danke schonmal...