Sau một thời gian ngồi mò em vẫn chưa tìm được lỗi, lên đây nhờ các cao nhân giúp đỡ. Em có viết một đoạn code GUI về JProgressBar
.Khi em click vào Button để setValue cho JProgressBar thì trên giao diện không được up trạng thái trong khi vẫn có in kết quả ở hàm System.out.print()
, Nhưng khi chạy xong thì kết quả lại được up vào giao diện.Bác nào đưa ra giải pháp cho em với.
Hình ảnh đang set trạng thái thanh ProgressBar:
Hình ảnh sau khi chạy xong:
Đây là code của em:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Swing;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingUtilities;
/**
*
* @author minhn
*/
import javax.swing.*;
public class JProgressBarDemo implements ActionListener {
JFrame f;
JProgressBar pr;
JButton btn;
JLabel lb;
Thread th = new Thread();
int i = 0;
JProgressBarDemo() {
f = new JFrame("ProgressBar");
f.setSize(300, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(null);
pr = new JProgressBar(0, 100);
pr.setStringPainted(true);
pr.setBounds(10, 30, 150, 20);
f.add(pr);
btn = new JButton("Start");
btn.setBounds(10, 70, 150, 20);
btn.addActionListener(this);
lb = new JLabel("Status");
f.add(btn);
f.add(lb);
f.setVisible(true);
// this.setvalue();
}
public static void main(String[] args) {
// new JProgressBarDemo();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new JProgressBarDemo();
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
});
}
public void setvalueProgress() {
for (i = 0; i <= 100; i += 10) {
pr.setValue(i);
System.out.println(pr.getValue());
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(JProgressBarDemo.class.getName()).log(Level.SEVERE, null, ex);
}
if (pr.getValue() == 100) {
JOptionPane.showMessageDialog(null, "Successful");
}
}
}
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Start")) {
this.setvalueProgress();
}
}
}