JProgressBar的小问题 有没有人能告诉下用JProgressBar能不能实现时间条的设计啊,等进度条随时间的进行填满后而自动触发一个事件啊,但不是进度条的实现求高手指点下,添加什么监听 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的意思是不是说让进度条随着时间改变啊 到最后触发事件如果是的话可以用Timer timer = new Timer(1000,new ActionListener{........自己知道的哈}); 在填满进度条的那一刻触发一个事件,那说明已经知道触发事件的原因了,不知道加一个if语句判断行不行,if(value == MAX_VALUE){ //触发事件} import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JProgressBar;import javax.swing.JLabel;import javax.swing.JRadioButton;import javax.swing.event.ChangeListener;import javax.swing.event.ChangeEvent;import javax.swing.ButtonGroup;public class test extends JFrame implements Runnable{ private JPanel contentPane; private JProgressBar pb; private int i=0; private final ButtonGroup buttonGroup = new ButtonGroup(); public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { test frame = new test(); frame.setVisible(true); new Thread(frame).start(); } catch (Exception e) { e.printStackTrace(); } } }); } public test() { setTitle("test"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 320, 118); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JRadioButton no = new JRadioButton("\u672A\u6EE1"); buttonGroup.add(no); no.setSelected(true); no.setBounds(50, 50, 65, 23); contentPane.add(no); final JRadioButton yes = new JRadioButton("\u5DF2\u6EE1"); buttonGroup.add(yes); yes.setBounds(187, 50, 65, 23); contentPane.add(yes); pb = new JProgressBar(); pb.setMaximum(50); pb.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent arg0) { /* * 添加JProgressBar值改变事件,当时间走到和JProgressBar的的最大值相同的时间 * 也就是JProgressBar填满的时候,也就是if语句中的判断未true的时候,就执行if中的 * 语句,把单选按钮”填满“勾选上。 * */ if(i==pb.getMaximum()){ yes.setSelected(true); } } }); pb.setBounds(0, 0, 304, 44); contentPane.add(pb); } public void run() { try{ while(true){ pb.setValue(i); i++; Thread.sleep(100); } }catch(Exception e){ e.printStackTrace(); } }} java中的awt问题。。 急问关于修改text值的问题 求C++程序员向Java切换的快速入门书,谢谢! 如何实现键盘上的组合键功能? JAVA操作Oracle的问题 怎样设定java.awt.Color的颜色java.awt.Font的字体(急在线等) (高分!!)java在数值计算方面的问题????????????????????? 如何实现这个简单的布局效果?哪些开发工具能自动布局啊? 关于实现了jdbc3.0规范的链接池问题 JTable实现排序大放送!! addRow的问题。。 java comm包怎么安装?
如果是的话可以用Timer timer = new Timer(1000,new ActionListener{
........自己知道的哈
});
if(value == MAX_VALUE){
//触发事件
}
import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JProgressBar;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import javax.swing.ButtonGroup;
public class test extends JFrame implements Runnable{ private JPanel contentPane;
private JProgressBar pb;
private int i=0;
private final ButtonGroup buttonGroup = new ButtonGroup();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test();
frame.setVisible(true);
new Thread(frame).start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public test() {
setTitle("test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 320, 118);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JRadioButton no = new JRadioButton("\u672A\u6EE1");
buttonGroup.add(no);
no.setSelected(true);
no.setBounds(50, 50, 65, 23);
contentPane.add(no);
final JRadioButton yes = new JRadioButton("\u5DF2\u6EE1");
buttonGroup.add(yes);
yes.setBounds(187, 50, 65, 23);
contentPane.add(yes);
pb = new JProgressBar();
pb.setMaximum(50);
pb.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent arg0) {
/*
* 添加JProgressBar值改变事件,当时间走到和JProgressBar的的最大值相同的时间
* 也就是JProgressBar填满的时候,也就是if语句中的判断未true的时候,就执行if中的
* 语句,把单选按钮”填满“勾选上。
*
*/
if(i==pb.getMaximum()){
yes.setSelected(true);
}
}
});
pb.setBounds(0, 0, 304, 44);
contentPane.add(pb);
} public void run() {
try{
while(true){
pb.setValue(i);
i++;
Thread.sleep(100);
}
}catch(Exception e){
e.printStackTrace();
}
}
}