JDialog in Thread wird nicht richtig angezigt



  • Hallo ich startet einen Thread, der ein Dialog einem Progressbar anzeigt.

    hier der Code :

    public class testSQLiteTestCaseImportThread extends Thread
    {
    	private testmasterFrame testFrame;
    	private String dataBaseFileName;
    
    	/**
    	 * 
    	 * @param testFrame
    	 * @param dataBaseFileName
    	 */
    	public testSQLiteTestCaseImportThread(testmasterFrame testFrame, String dataBaseFileName)
    	{
    		this.testFrame			= testFrame;
    		this.dataBaseFileName	= dataBaseFileName;
    	}
    
    	@Override
    	public void run() {
    		// create new text case list
    		if (testFrame.testCaseList == null)
    		{
    			testFrame.testCaseList	= new testSQLiteTestCaseList();					
    		}
    
    		try {
    			((testSQLiteTestCaseList)testFrame.testCaseList).readTestCases(dataBaseFileName);
    		} catch (SQLException e) {
    			testFrame.showMessageBox(e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    		} catch (ClassNotFoundException e) {
    			testFrame.showMessageBox(e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    		}	
    
    		//testFrame.updateTestCaseTree();		
    
    		try {
    			sleep(5000);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }
    

    Wenn ich nun einen weiteren thread starte, der Daten aus einer datenbank liest, wird der Dialog nicht richtig angezeigt. Es wird nur der Rahmen gezeichnet aber nicht der Progressbar.

    Hat jemand eine Idee ?

    Ich habe auch schon versucht die Threads mit unterschielicher Priorität zu starten aber bisher ohne erfolg



  • Es fehlen interessante Teile des codes...
    Es sieht aber so aus als würdest du auf der selben Referenz deines (J)Frames arbeiten.

    Bitte tue dir und uns den gefallen die Basics zu lernen.
    Threads und Swing - Swingworker
    Coding Conventions - TestMasterFrame
    MVC - dein Fenster kann daten lesen?
    JUnit @Test
    Standard Edition - es gibt für z.B. Dateien die File Klasse
    Nebenläufigkeit - ein thread ließt gerade daten und ein anderer könnte deine liste neu initialisieren
    Deutsch - Ich möchte einen Thread starten, der in einem Dialog eine Progress Bar anzeigt.


Anmelden zum Antworten