SWT SWT Dialogfenster blitzen bei deren Aufruf

Status
Nicht offen für weitere Antworten.

chaudek

Mitglied
Hallo,

ich habe eine kleine (SWT) Applikation , die verschiedene SWT Dialogfenster hat. Unter anderem auch ein Startdialog bevor das Hauptfenster öffnet, bei der man den User aus einer Combobox auswählt.
Bei jedem Dialogfenster ist es aber so, dass irgend etwas (ein GUI Element) beim starten kurz aufblitzt (<1sec.) bevor der Dialog dann normal geöffnet ist.

Kennt jemand das Phänomen?
Wie kann ich das kurze aufblitzen vermeiden?


Als Bsp. mein Applikationstart-code mit der AnmeldeDialog:

App-Start:
Code:
public class AppStart {
	
	public static ArrayList<KundenListenModell> kundenliste = new ArrayList<KundenListenModell>(); 
	public static ArrayList<KundenListenModell> interessentenliste = new ArrayList<KundenListenModell>(); 
	public static ArrayList<KundenListenModell> businesspartnerliste = new ArrayList<KundenListenModell>(); 
	public static ArrayList<Sachbearbeiter>     sachbearbeiterListe = new ArrayList<Sachbearbeiter>();

	
	private AppStart() throws Exception{
    	DBConnection dbVerbindung = new DBConnection();
    	dbVerbindung.open();
	   	DBDatenManager dbDaten = new DBDatenManager();
    	sachbearbeiterListe = dbDaten.readSachbearbeiterListe();
    	Integer actualUser = dbDaten.readActualUser();
    	
    	new AnmeldeDialog(sachbearbeiterListe, actualUser, this);
       	
	}
     
    public void start()		throws Exception {
		Display display = Display.getDefault();
	   	DBDatenManager dbDaten1 = new DBDatenManager();
      	kundenliste = dbDaten1.readKundenListe();
      	interessentenliste = dbDaten1.readInteressentenListe();
      	businesspartnerliste = dbDaten1.readBusinessPartnerListe();

		HauptGUI applikation = new HauptGUI(kundenliste);
		applikation.sShell.open();
		
		

		/*Warten bis Hauptfenster geschlossen wird*/
		while (!applikation.sShell.isDisposed()) {
			//Prüfen, ob Ereignisse warten
			if (!display.readAndDispatch())  display.sleep();
		}
		display.dispose();
    }

	public static void main(String[] args){
		
		try {
			new AppStart();
			DBConnection.close();
	        
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Anmelde-Dialog:
Code:
public class AnmeldeDialog {

	private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
	private Composite composite = null;
	private Label label = null;
	private Composite composite2 = null;
	private Composite composite1 = null;
	private ProgressBar progressBar = null;
	private CCombo cCombo = null;
	private Button OKbutton = null;
	private Button CancelButton = null;
	private Integer actualUser;  //  @jve:decl-index=0:
	private ArrayList<Sachbearbeiter> sachbearbeiterListe;
	private int showindex;
	private boolean initialApplikationStart;
	private AppStart appStart;

	/** Initialstart des Programms !
	 * Konstruktor des User Anmeldedialogs für den Initialstart des Programms.
	 * Hier wird für das Hauptfenster das Display initialisiert, 
	 * und die Shell-Warteschleife des Hauptfensters erstellt.
	 * 		@param sachbearbeiterListe
	 * 		@param actualUser
	 * 		@param _appStart 
	 */
	public  AnmeldeDialog(ArrayList<Sachbearbeiter> sachbearbeiterListe, 
			Integer actualUser, AppStart _appStart){
		
		Display display = Display.getDefault();
		
		this.sachbearbeiterListe =sachbearbeiterListe;
		this.actualUser = actualUser;
		createSShell();
		comboUser();
		initialApplikationStart = true;
		this.appStart = _appStart;
		OKbutton.setFocus();
		
		
//----Warteschleife für Display-------------
		/*Warten bis Hauptfenster geschlossen wird*/
		while (!sShell.isDisposed()) {
			//Prüfen, ob Ereignisse warten
			if (!display.readAndDispatch())  display.sleep();
		}
		display.dispose();


	}
.......
......
...
 

chaudek

Mitglied
Ich habe es herausgefunden:
Das Problem war, das ich zu früh den Befehl
Java:
shell.SetVisible(true);
eingesetzt hatte. Nachdem ich den Befehl ans Ende der Shell-Methode (nachdem alle Bestandteile generiert wurden) gesetzt hatte,hatte es funktioniert!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben