Error Meldung obwohl alles richtig

  • Themenstarter Themenstarter Tobias Köhler
  • Beginndatum Beginndatum
T

Tobias Köhler

Ich bin total ratlos. Da schreibe ich eine Art DVD-Datenbank, sie funktioniert die ganze Zeit(nur noch ein kleines Problem mit der Datenbank an sich^^) und dann passiert es:

das Fenster öffnet sich zwar, aber ohne Inhalt. und wenn ich es dann schließe kommt folgende Fehlermeldung:
Code:
Exception in thread "main" java.lang.IllegalArgumentException: Argument not valid
	at org.eclipse.swt.SWT.error(SWT.java:3358)
	at org.eclipse.swt.SWT.error(SWT.java:3297)
	at org.eclipse.swt.SWT.error(SWT.java:3268)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:435)
	at org.eclipse.swt.widgets.Widget.checkParent(Widget.java:268)
	at org.eclipse.swt.widgets.Widget.<init>(Widget.java:141)
	at org.eclipse.swt.widgets.Control.<init>(Control.java:96)
	at org.eclipse.swt.widgets.Label.<init>(Label.java:91)
	at de.gui.Formular.main(Formular.java:32)

Danach habe ich das ganze mal auf ein minimum reduziert. Nur Fenster und Label, mehr nicht. Aber auch dann kommt obige Fehlermeldung. Dabei bin ich mir sicher, dass der Code stimmt(da ja schonmal keine Fehlermeldung angezeigt wird:confused: )Der relevante Quellcode lautet:

Code:
package de.gui;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class Formular {

	public Formular() {
	}

	public static void main(String[] args) {
		
		//---- Fenster Beginn ----
		Display display = new Display();
		Shell shell = new Shell(display);
		
		shell.setSize(400, 500);
		shell.open();
		
		while (!shell.isDisposed())
			if (!display.readAndDispatch()) 
				display.sleep();
		//---- Fenster Ende ----
		
		Label cb = new Label(shell, SWT.NONE);
		cb.setBounds(new Rectangle(200, 100, 100, 25));

	}

}

Ich hoffe, ihr könnt mir helfen;-)
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

ich habe den Code zwar nicht getestet, aber die letzten beiden Zeilen der Main-Methode stehen vermutlich an der falschen Stelle. Die vorherige Schleife wird erst verlassen, wenn du das Fenster schließt, denn dann ist shell.isDisposed() == true. Und dann erst versuchst du, Widgets hinzuzufügen, was natürlich fehlschlägt. Also setz mal die letzten beiden Zeilen vor die Schleife, dann könnte es klappen.

Grüße,
Matthias
 
Zurück