import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.*;public class Checkbox2 extends JFrame{

JButton button1 = new JButton("确定");
public Checkbox2(){
setBounds(300,300,300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
final JProgressBar bar1 = new JProgressBar();

add(button1);
add(bar1);
//button1.addActionListener(new ActionListener(){
//public void actionPerformed(ActionEvent e){
button1.addKeyListener(new KeyAdapter(){ 
 public void keyPressed(KeyEvent e) { //String command = e.getActionCommand();
     // if(command.equals("确定")){
//int answer = JOptionPane.YES_NO_CANCEL_OPTION;
//if(answer == JOptionPane.YES_OPTION){
//JProgressBar bar1 = (JProgressBar)e.getSource();
while(true){
         for(int i=1; i<=100; i++){
         bar1.setValue(i);
try{
Thread.sleep(100);
}
catch(Exception e1){}
}
         }
}
//}
});
}
public static void main(String[] args){
Checkbox2 frame = new Checkbox2();
frame.setVisible(true);
}}该怎样实现点击“确定”按键,进度条就可以走动起来了呢??用//注释的是我试过的,,但不成功,,请高手帮我看看发生事件那该怎样改……谢谢了!

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Checkbox2 extends JFrame{
        
        JButton button1 = new JButton("确定");
        public Checkbox2(){
            setBounds(300,300,300,300);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLayout(new FlowLayout());
            final JProgressBar bar1 = new JProgressBar();
            
            add(button1);
            add(bar1);
            button1.addActionListener(new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) {
                        Runnable runnable = new Runnable(){
                                public void run(){
                                    while(true){
                                        for(int i=1; i<=100; i++){
                                            bar1.setValue(i);
                                            try{
                                                Thread.sleep(100);
                                            }
                                            catch(Exception e1){}
                                        }
                                    }                                                    
                                }
                            };
                        new Thread(runnable).start();
                    }
                });
        }
        public static void main(String[] args){
            java.awt.EventQueue.invokeLater(new Runnable(){
                    public void run(){
                        Checkbox2 frame = new Checkbox2();
                        frame.setVisible(true);
                    }
                });
        }
    }