JWindow immer im Fordergrund

Status
Nicht offen für weitere Antworten.

CCMario

Mitglied
Hallo Leute!

Seit ca. 3 monaten bin ich am java lernen und stehe nun vor einem Problem, wo ich nicht wirklich eine Lösung finde.

Ich habe mir eine Klasse geschrieben, in der ein JWindow mit einem Progressbar angzeigt wird. Dieses Fenster wird solange angezeigt, bis ein zweiter Thread beendet ist. Das Funktioniert auch tadellos und ohne probleme. Allerdings möchte ich, das dieses Fenster sollange imFordergrund bleibt bis der andere Thread beendet ist. Soblad man woanders hinklickt ist dieses Fenster weg (im Hintergrund, da der Thread läuft).

Ich habe es auch mit einem JDialog versucht, den ich auf Modal gestellt habe, aber dann funktioniert gar nix mehr.

Code:
public class MWProgressBar extends Thread {
	JWindow frame = new JWindow();
	Thread thread;
	String txt;
	/**
	 * 
	 * @param wartenauf		Thread
	 * @param progrestxt	String
	 */
	public MWProgressBar(Thread wartenauf, String progrestxt){
		this.thread = wartenauf;
		this.txt = progrestxt;
		
	}
	public void run() {
		
		 try{
			 final JProgressBar jp = new JProgressBar();
			 frame.getContentPane().setLayout(new FlowLayout());
			 frame.getContentPane().add(jp);
			 jp.setPreferredSize(new Dimension(300,30));
			 jp.setStringPainted(true);
			 jp.setString(txt);
			 jp.setIndeterminate(true);
			 frame.pack();
			 frame.setLocationRelativeTo(null);
			 
			 SwingUtilities.invokeAndWait(new Runnable(){
	
				public void run() {
					frame.setVisible(true);
				}
			 });
		 	Thread.sleep(1000);
		 	do{
		 		Thread.yield();
				if (!thread.isAlive()){
					frame.setVisible(false);
					frame.dispose();
				}
			} while (thread.isAlive());
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}
}
 
misst, jetzt habe ich zu schnell die frage gestellt, mann sollte halt die doku etwas aufmerksamer lesen.
es gibt einen kostruktor

JWindows(Frame owner)

den habe ich jetzt verwendet und jetzt funzt es.

Code:
public MWProgressBar(JFrame owner, Thread wartenauf, String progrestxt){
		this.thread = wartenauf;
		this.txt = progrestxt;
		this.frame = new JWindow(owner);
	}
 
Fordergrund <-- Das ist doch mal ein wahres englisch-deutsches Wort, gebildet aus Foreground und Vordergrund :bae: :wink:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben