Hallo,
irgend wie möchte mein Code heute nicht funktionieren.
Ich möchte ganz einfach wenn ich auf ein Button klicke, dass mein code auch in einer while schleife die werte von Jlabel ändert.
Irgend wie funktioniert das nicht ganz. Text von jlabel wird erst wenn die Schleife zu ende geführt wird geändert.
Ich habe mit:
contentPane.invalidate();
contentPane.validate();
contentPane.repaint();
SwingUtilities.updateComponentTreeUI(contentPane);
probiert. Leider funktioniert nicht.
Zur Einfachheit habe ich ein test Code geschrieben.
Was mache ich falsch?
irgend wie möchte mein Code heute nicht funktionieren.
Ich möchte ganz einfach wenn ich auf ein Button klicke, dass mein code auch in einer while schleife die werte von Jlabel ändert.
Irgend wie funktioniert das nicht ganz. Text von jlabel wird erst wenn die Schleife zu ende geführt wird geändert.
Ich habe mit:
contentPane.invalidate();
contentPane.validate();
contentPane.repaint();
SwingUtilities.updateComponentTreeUI(contentPane);
probiert. Leider funktioniert nicht.
Zur Einfachheit habe ich ein test Code geschrieben.
Was mache ich falsch?
Javascript:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class main extends JFrame {
public static JPanel contentPane;
public static int i=0;
public static JButton btnButton;
public static JLabel lblText;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
main frame = new main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public main() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
btnButton = new JButton("button");
btnButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
while(i<10) {
System.out.println(String.valueOf(i));
try {Thread.sleep(400);} catch (Exception l) {}
lblText.setText(String.valueOf(i));
i=i+1;
contentPane.invalidate();
contentPane.validate();
contentPane.repaint();
SwingUtilities.updateComponentTreeUI(contentPane);
SwingUtilities.updateComponentTreeUI(lblText);
}
}
});
btnButton.setBounds(161, 35, 89, 23);
contentPane.add(btnButton);
lblText = new JLabel("Text");
lblText.setBounds(180, 88, 46, 14);
contentPane.add(lblText);
}
}