Hallo Leute,
habe versucht den SWT-Artiekl des aktuellen Eclipse-Magazins nachzuarbeiten.
Es sollte eine Art Kalender rauskommen. Stehe noch am Anfang. Wie im untenstehen Quelltext zu sehen ist, sollte auch ein Button auftauchen; links neben dem Text-Widget. Tut er aber nicht und ich komm nicht dahinter wieso - kommt jemand von euch dahinter?
Ist übrigens mein erster Versuch mit SWT...
Danke für die Hilfe, Sascha
habe versucht den SWT-Artiekl des aktuellen Eclipse-Magazins nachzuarbeiten.
Es sollte eine Art Kalender rauskommen. Stehe noch am Anfang. Wie im untenstehen Quelltext zu sehen ist, sollte auch ein Button auftauchen; links neben dem Text-Widget. Tut er aber nicht und ich komm nicht dahinter wieso - kommt jemand von euch dahinter?
Ist übrigens mein erster Versuch mit SWT...
Danke für die Hilfe, Sascha
Code:
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;
public class CalendarBasicApp {
private static final String[] monthNames = { "Januar", "Februar", "März",
"April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
"November", "Dezember" };
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Basic Calendar");
shell.setLayout(new FillLayout(SWT.VERTICAL));
Composite dateComp = new Composite(shell, 0);
dateComp.setLayout(new RowLayout());
final Spinner dSpinner = new Spinner(dateComp, SWT.BORDER);
dSpinner.setMaximum(31);
dSpinner.setMinimum(1);
final Combo mCombo = new Combo(dateComp, SWT.READ_ONLY);
mCombo.setItems(monthNames);
mCombo.setText(monthNames[0]);
final Spinner ySpinner = new Spinner(dateComp, SWT.BORDER);
ySpinner.setMaximum(10000);
ySpinner.setMinimum(2006);
Composite resultComp = new Spinner(shell, 0);
resultComp.setLayout(new RowLayout());
Button calcButton = new Button(resultComp, 0);
calcButton.setText("Berechnen");
final Text rText = new Text(resultComp, SWT.BORDER | SWT.READ_ONLY);
calcButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
Calendar today = Calendar.getInstance();
rText.setText(Integer.toString(numberOfDays(today
.get(Calendar.YEAR), today.get(Calendar.MONTH), today
.get(Calendar.DAY_OF_MONTH), ySpinner.getSelection(),
mCombo.getSelectionIndex(), dSpinner.getSelection())));
}
});
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
public static int numberOfDays(int y1, int m1, int d1, int y2, int m2,
int d2) {
Calendar c1 = new GregorianCalendar(y1, m1, d1);
Calendar c2 = new GregorianCalendar(y2, m2, d2);
int doyT1 = c1.get(Calendar.DAY_OF_YEAR);
int doyT2 = c2.get(Calendar.DAY_OF_YEAR);
return (doyT1 - doyT2) + (y1 - y2) * 365;
}
}