JProgressBar

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!

hab ein Problem mit der JProgressBar in meinem programm. ich will das man 10 sekunden warten muss. der fortschritt soll mit der progressbar sichtlich sein (also 1 sekunde sind 10%)

Code:
public void Fenster()
	{
		Box box1 = Box.createHorizontalBox();
		Box box2 = Box.createHorizontalBox();
		Box vbox = Box.createVerticalBox();
		vbox.add(box1);
		vbox.add(box2);
		
		JProgressBar pro = new JProgressBar(0);
		pro.setValue(0);
		pro.setStringPainted(true);
		box2.add(pro);
	         
	    long endZeit = System.currentTimeMillis() + 10 * 1000;
	    int zeit = 10;
	    while(endZeit > System.currentTimeMillis())
	    {
	    	++zeit;
	    	pro.setValue(zeit);
	    }
		
		b1 = new JButton("Weiter");
		box1.add(b1);
		add(vbox);

	}

leider geht das irgendwie nicht. das fenster öffnent sich, jedoch ohne JMenu und der oberfläche. vor diesem versuch gings jedoch.

danke im voraus!
 
G

Guest

Gast
falls das nicht reichen sollte: hier das ganze programm

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.AbstractAction;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.filechooser.FileFilter;
import java.awt.HeadlessException;
import java.net.MalformedURLException;
import java.io.*;
import javax.swing.JComponent;


class StecknControl extends JFrame
{
private JMenuBar bar;
private JMenu m1,m2;
private JMenuItem jm1,jm2,jm3,jm4;
private JFileChooser chooser = new JFileChooser();
private File sf;
private PrintWriter out;
private JFileChooser fc = new JFileChooser();
//public JTextComponent text;
private JTextPane text;
private Container cp;
private JButton b1;
private double dom = 0, louise = 0, mama = 0;
//private int progr = 0;


public StecknControl()
{
Fenstereigenschaften();
Menu();
Fenster();

} // ende StecknControl()


public void Fenstereigenschaften()
{
setSize(400,350);
setLocation(250,200);
setResizable(false);
setIconImage(new ImageIcon("lock.png").getImage());
setTitle("StecknControl");

} // ende Fenstereigenschaften


public void Menu()
{
setJMenuBar(bar = new JMenuBar());

// File
bar.add(m1 = new JMenu("File"));
//m1.setMnemonic(KeyEvent.VK_F);
m1.add(jm1 = new JMenuItem("Neu", new ImageIcon("New24.gif")));
//jm1.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));

} // ende Menu()


public void Fenster()
{
Box box1 = Box.createHorizontalBox();
Box box2 = Box.createHorizontalBox();
Box vbox = Box.createVerticalBox();
vbox.add(box1);
vbox.add(box2);

JProgressBar pro = new JProgressBar(0);
pro.setValue(0);
pro.setStringPainted(true);
box2.add(pro);

long endZeit = System.currentTimeMillis() + 10 * 1000;
int zeit = 10;
while(endZeit > System.currentTimeMillis())
{
++zeit;
pro.setValue(zeit);
System.out.println(zeit);
}

b1 = new JButton("Weiter");
box1.add(b1);
add(vbox);

}





/*
public void Offnen()
{
int option = chooser.showOpenDialog(text);
if(option == JFileChooser.APPROVE_OPTION)
{
File sf = chooser.getSelectedFile();
try
{
FileReader fr = new FileReader(sf);
text.read(fr,null);
fr.close();
} catch(IOException e) {
System.out.println("Problem beim Öffnen der Datei");
}
}

} // ende Offnen


public void Speichern()
{
String schreiben;

if(fc.showSaveDialog(cp) == 0)
{
sf = fc.getSelectedFile();
try
{
out = new PrintWriter(new FileWriter(sf));
schreiben = text.getText();
out.flush();
out.close();
} catch(Exception e) {
System.out.println("Fehler beim Speichern");
}
}
else
{
JOptionPane.showMessageDialog(cp,"Keine Datei zum Speichern gewählt!",
"SPEICHERN",JOptionPane.ERROR_MESSAGE);
}

} // Speichern()
*/

} // ende StecknControl




public class Steckn
{
public static void main(String[] argv)
{
StecknControl st = new StecknControl();
st.setVisible(true);
}

} // ende Steckn
 
G

Guest

Gast
danke!

habs jetzt so gemacht:

Code:
	public void Fenster()
	{
		Box box1 = Box.createHorizontalBox();
		Box box2 = Box.createHorizontalBox();
		Box vbox = Box.createVerticalBox();
		vbox.add(box1);
		vbox.add(box2);
		
		pro = new JProgressBar(0,10);
		pro.setValue(0);
		pro.setStringPainted(true);
		box2.add(pro);

		int max = 5;
		for ( int i = 1; i <= max; i++ )
	    {
	      try { Thread.sleep( 1000 ); } catch ( InterruptedException e ) { }
	      final int j = i;
	      SwingUtilities.invokeLater( new Runnable() {
	            public void run() { pro.setValue( j ); }
	          } );
	    }
	    
		
		b1 = new JButton("Weiter");
		box1.add(b1);
		
		add(vbox);

	}

jedoch zählt es zuerst die 5sec hoch und dann zeigt es erst die GUI an. der balken ist dann auf 100%
was mach ich falsch?
 
B

Beni

Gast
Deine for-Schleife musst du in einen eigenen Thread packen. Nur so kann der AWT-Thread weiterarbeiten, während die for ihre Runden dreht.

Code:
new Thread(){
  public void run(){
    for( ... ){ ... }
  }
}.start();
 
G

Guest

Gast
danke! so geht zwar das fenster auf, aber die oberfläche ist weg! hab mehrere methoden versucht.

Code:
	public void Fenster()
	{
		Box box1 = Box.createHorizontalBox();
		Box box2 = Box.createHorizontalBox();
		Box vbox = Box.createVerticalBox();
		vbox.add(box1);
		vbox.add(box2);
		
		pro = new JProgressBar(0,10);
		pro.setValue(0);
		pro.setStringPainted(true);
		box2.add(pro);

		
		
		
		new Thread() {
			public void run() {
				for ( int i = 1; i <= max; i++ )
			    {
			      try { Thread.sleep( 1000 ); } catch ( InterruptedException e ) { }
			      final int j = i;
			      pro.setValue(j);
			      //SwingUtilities.invokeLater( new Runnable() {
			      //     public void run() { pro.setValue( j ); }
			      //} );
			    }
			}
		}.start();
	    
		
		b1 = new JButton("Weiter");
		box1.add(b1);
		
		add(vbox);

	}
 
G

Guest

Gast
war schon deklariert. hier mal der ganze code:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.AbstractAction;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.filechooser.FileFilter;
import java.awt.HeadlessException;
import java.net.MalformedURLException;
import java.io.*;
import javax.swing.JComponent;


class StecknControl extends JFrame
{
	private JMenuBar bar;
	private JMenu m1,m2;
	private JMenuItem jm1,jm2,jm3,jm4;
	private JFileChooser chooser = new JFileChooser();
	private File sf;
	private PrintWriter out;
	private JFileChooser fc = new JFileChooser();
	//public JTextComponent text;
	private JTextPane text;
	private Container cp;
	private JButton b1;
	private double dom = 0, louise = 0, mama = 0;
	//private int progr = 0;
	private JProgressBar pro;
	private int max = 5;


	
	
	public StecknControl()
	{
		Fenstereigenschaften();
		Menu();
		Fenster();
		
	} // ende StecknControl()
	
	
	public void Fenstereigenschaften()
	{
		setSize(400,350);
		setLocation(250,200);
		setResizable(false);
		setIconImage(new ImageIcon("lock.png").getImage());
		setTitle("StecknControl");
		
	} // ende Fenstereigenschaften
	
	
	public void Menu()
	{
		setJMenuBar(bar = new JMenuBar());
		
		// File
		bar.add(m1 = new JMenu("File"));
		//m1.setMnemonic(KeyEvent.VK_F);
			m1.add(jm1 = new JMenuItem("Neu", new ImageIcon("New24.gif")));
			//jm1.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));
		
	} // ende Menu()
	

	
	
	public void Fenster()
	{
		Box box1 = Box.createHorizontalBox();
		Box box2 = Box.createHorizontalBox();
		Box vbox = Box.createVerticalBox();
		vbox.add(box1);
		vbox.add(box2);
		
		pro = new JProgressBar(0,10);
		pro.setValue(0);
		pro.setStringPainted(true);
		box2.add(pro);

		
		
		
		new Thread() {
			public void run() {
				for ( int i = 1; i <= max; i++ )
			    {
			      try { Thread.sleep( 1000 ); } catch ( InterruptedException e ) { }
			      final int j = i;
			      pro.setValue(j);
			      //SwingUtilities.invokeLater( new Runnable() {
			      //     public void run() { pro.setValue( j ); }
			      //} );
			    }
			}
		}.start();
	    
		
		b1 = new JButton("Weiter");
		box1.add(b1);
		
		add(vbox);

	}
	
	
	
	
	
	/*
	public void Offnen()
	{
		int option = chooser.showOpenDialog(text);
		if(option == JFileChooser.APPROVE_OPTION)
		{
			File sf = chooser.getSelectedFile();
			try
			{
				FileReader fr = new FileReader(sf);
				text.read(fr,null);
				fr.close();
			} catch(IOException e) {
				System.out.println("Problem beim Öffnen der Datei");
			}
		}
		
	} // ende Offnen
	
	
	public void Speichern()
	{
		String schreiben;
		
		if(fc.showSaveDialog(cp) == 0)
		{
			sf = fc.getSelectedFile();
			try
			{
				out = new PrintWriter(new FileWriter(sf));
				schreiben = text.getText();
				out.flush();
				out.close();
			} catch(Exception e) {
				System.out.println("Fehler beim Speichern");
			}
		}
		else
		{
			JOptionPane.showMessageDialog(cp,"Keine Datei zum Speichern gewählt!",
		    "SPEICHERN",JOptionPane.ERROR_MESSAGE);
		}
		
	} // Speichern()
	 */
	
} // ende StecknControl




public class Steckn 
{
	public static void main(String[] argv)
	{
		StecknControl st = new StecknControl();
		st.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		st.setVisible(true);
	}
	
} // ende Steckn
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Rekursive Methode JProgressBar AWT, Swing, JavaFX & SWT 4
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
A Swing JProgressbar im Windows Look & Feel Farbanpassung AWT, Swing, JavaFX & SWT 2
G JProgressBar: Verständnis Problem AWT, Swing, JavaFX & SWT 3
S Swing JProgressBar läuft nicht mit AWT, Swing, JavaFX & SWT 12
T Swing JProgressBar mit String unschön AWT, Swing, JavaFX & SWT 5
H jprogressbar während datenabfrage anzeigen AWT, Swing, JavaFX & SWT 5
P Problem Thread.sleep() und JProgressBar AWT, Swing, JavaFX & SWT 7
E Swing JProgressBar updaten AWT, Swing, JavaFX & SWT 3
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
V Swing JProgressBar aktualisieren AWT, Swing, JavaFX & SWT 14
M JProgressBar updatet nicht AWT, Swing, JavaFX & SWT 4
T Swing JProgressBar Indeterminate bleibt stehen bei neuem Fenster AWT, Swing, JavaFX & SWT 6
A JProgressBar updaten abhängig vom Output eines externen Skripts AWT, Swing, JavaFX & SWT 2
M JProgressBar für einen Thread AWT, Swing, JavaFX & SWT 14
J JProgressBar Indeterminate AWT, Swing, JavaFX & SWT 17
J JProgressBar Farbverlauf AWT, Swing, JavaFX & SWT 2
O Probleme mit JProgressBar bei der Statusanzeige AWT, Swing, JavaFX & SWT 5
S jProgressbar von einem Download AWT, Swing, JavaFX & SWT 6
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
S Swing StatusLeiste mit JProgressBar AWT, Swing, JavaFX & SWT 4
S JProgressBar in Abhängigkeit eines FileInputStreams AWT, Swing, JavaFX & SWT 2
S (Applets) JProgressBar wird erst am Ende angezeigt AWT, Swing, JavaFX & SWT 13
S Problem mit JProgressBar AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
C Swing JProgressBar Aktualisiert sich nicht. AWT, Swing, JavaFX & SWT 9
M JProgressBar Look and Feel AWT, Swing, JavaFX & SWT 5
C JProgressBar und JLabel AWT, Swing, JavaFX & SWT 5
K JProgressBar transparent AWT, Swing, JavaFX & SWT 10
M JProgressBar AWT, Swing, JavaFX & SWT 2
K JProgressBar für Serialisierung AWT, Swing, JavaFX & SWT 6
multiholle [JProgressBar] Raster deaktivieren AWT, Swing, JavaFX & SWT 14
M JProgressBar übereinander legen? AWT, Swing, JavaFX & SWT 3
B JProgressbar wird nicht aktualisert, trotz Threads AWT, Swing, JavaFX & SWT 6
G JProgressBar actionPerformedMethode und SwingUI thread AWT, Swing, JavaFX & SWT 36
S JProgressBar und Threads AWT, Swing, JavaFX & SWT 11
G Repaint bei JProgressBar AWT, Swing, JavaFX & SWT 3
A Richtiger Umgang mit jProgressBar AWT, Swing, JavaFX & SWT 2
H JProgressBar in TableColumn von JTable setzen/abfragen AWT, Swing, JavaFX & SWT 5
B JProgressBar: wie muss ich das lösen? AWT, Swing, JavaFX & SWT 4
R JProgressBar-Verhalten AWT, Swing, JavaFX & SWT 5
G JProgressbar AWT, Swing, JavaFX & SWT 8
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
C JProgressBar und ihre Tücken AWT, Swing, JavaFX & SWT 8
G JProgressBar in JTable AWT, Swing, JavaFX & SWT 6
G Probleme mit JProgressbar auf JPanel in JFrame AWT, Swing, JavaFX & SWT 6
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
T JProgressBar und CMP Bean AWT, Swing, JavaFX & SWT 2
J JProgressBar flackert AWT, Swing, JavaFX & SWT 14
S JProgressBar zu JOptionPane hinzufügen. AWT, Swing, JavaFX & SWT 8
M Swinganwendung Threads mit JProgressBar AWT, Swing, JavaFX & SWT 7
L JProgressbar möglichst genau AWT, Swing, JavaFX & SWT 3
G JProgressBar + Thread + Client AWT, Swing, JavaFX & SWT 10
R JProgressBar ohne Threads verwenden AWT, Swing, JavaFX & SWT 6
I JProgressBar String anzeigen, danach wieder normale Ansicht AWT, Swing, JavaFX & SWT 3
L JProgressBar wird nicht mehr aktualisiert AWT, Swing, JavaFX & SWT 2
U JProgressBar in umgekehrter Richtung AWT, Swing, JavaFX & SWT 2
S JProgressBar einbinden AWT, Swing, JavaFX & SWT 5
H JProgressBar AWT, Swing, JavaFX & SWT 6
T JProgressBar und JPG AWT, Swing, JavaFX & SWT 2
D Problem mit JProgressBar und Threads AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben