Hallo alle zusammen haben ein kleines Problem mit einer jProgressBar, in der ich nach Betätigung eines Buttons alle 1 sec. den Wert erhöhen möchte. Jedoch sobald ich auf den Button drücke, passiert erst nach 20 sec. was sichtbares, nachdem die for-Schleife durchlaufen wurde. Ich möchte jedoch, dass nach jedem Schleifendurchlauf was Sichtbares auf der jProgressBar passiert! hatte es auch schon mit repaint() Veruscht!
Habe drei Klassen, die folgendermaßen aussehen:
Main.class
Window.class
Function.class
Würde mich sehr freuen wenn ihr mir vielleicht helfen könntet oder hilfreiche Tipps geben könntet!
Gruß
Patrick
Habe drei Klassen, die folgendermaßen aussehen:
Main.class
Code:
package src;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Window win = new Window();
}
}
Window.class
Code:
package src;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
public class Window extends JFrame {
private JProgressBar prog;
private JButton button;
private Function function;
public Window(){
setLayout(null);
function = new Function(this);
setBounds(50, 50, 300, 300);
prog = new JProgressBar();
add(prog).setBounds(20, 20, 50, 20);
button = new JButton("Start");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
function.run();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
add(button).setBounds(100, 20, 50, 20);
setVisible(true);
}
public JProgressBar getProgressBar(){
return prog;
}
}
Function.class
Code:
package src;
public class Function {
private Window window;
public Function(Window window){
this.window = window;
}
public void run() throws InterruptedException{
for(int i=0;i<20;i++){
window.getProgressBar().setValue(i);
window.getProgressBar().repaint();
Thread.sleep(1000);
}
}
}
Würde mich sehr freuen wenn ihr mir vielleicht helfen könntet oder hilfreiche Tipps geben könntet!
Gruß
Patrick