Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在我的代码中添加与计时器一起工作的JProgressBar?_Java_Swing_Jframe_Actionlistener_Jprogressbar - Fatal编程技术网

Java 如何在我的代码中添加与计时器一起工作的JProgressBar?

Java 如何在我的代码中添加与计时器一起工作的JProgressBar?,java,swing,jframe,actionlistener,jprogressbar,Java,Swing,Jframe,Actionlistener,Jprogressbar,我想在我的代码中添加一个JProgressBar,它一直计数到5(以秒为单位)。之后,它将生成新的值,但我当前的问题是,我甚至无法使用ActionListener生成ProgressBar,因此我不会重复。有人能告诉我如何添加带有计时器的进度条吗 我试图将它添加到Haupt类中,但在按下restart按钮(Neustart)后没有重复,所以我尝试了许多其他方法,但没有任何效果 /** *@作者(诺亚·斯坦勒) *@version(2.2.1) */ //重要的 导入java.awt.Color;

我想在我的代码中添加一个JProgressBar,它一直计数到5(以秒为单位)。之后,它将生成新的值,但我当前的问题是,我甚至无法使用ActionListener生成ProgressBar,因此我不会重复。有人能告诉我如何添加带有计时器的进度条吗

我试图将它添加到Haupt类中,但在按下restart按钮(Neustart)后没有重复,所以我尝试了许多其他方法,但没有任何效果

/**
*@作者(诺亚·斯坦勒)
*@version(2.2.1)
*/
//重要的
导入java.awt.Color;
导入java.awt.FlowLayout;
导入java.awt.event.ActionListener;
导入java.awt.event.ActionEvent;
导入java.util.Random;
导入javax.swing.JFrame;
导入javax.swing.JTextField;
导入javax.swing.JLabel;
导入javax.swing.JButton;
导入javax.swing.SwingUtilities;
导入javax.swing.JProgressBar;
导入javax.swing.Timer;
//Klasse mit JFrame erweitert和hat是ActionListener实现者
公共类Haupt扩展JFrame实现ActionListener
{
私有整数x=(整数)(Math.random()*20+1);
private int y=(int)(Math.random()*20+1);
私有整数z=x*y;
私人JTextField benutzerWert;
私人JLabel-aufgabe;
私人JLabel-eingabeTipp;
私人JButton neustartButton;
私有静态int-richtig;
私人JLabel-richtigLabel;
法尔希私人住宅;
私人JLabel-falschLabel;
私人定时器;
私人JProgressBar progressBar;
公营医院()
{
超级(“多重游戏”);
//nutzt流量布局图
setLayout(新的FlowLayout());
//标签zur Anzeige des Aufgabeterms
aufgabe=新的JLabel(x+“\u2219”+y+“=”);
添加(aufgabe);
//埃因加贝费尔德·弗尔·贝努策和维德·格切特
benutzerWert=新的JTextField(5);
benutzerWert.addActionListener(这个);
添加(贝努特泽维特);
//这是一个很好的例子,它是一个很好的例子
eingabeTipp=新的JLabel(“”);
添加(eingabeTipp);
//诺伊斯特
neustartButton=新的JButton(“Nächste Aufgabe”);
添加(新开始按钮);
addActionListener(这个);
//里希蒂根酒店
richtig=0;
richtigLabel=新的JLabel();
richtigLabel.setText(“Anzahl der Richtigen:+richtig”);
添加(标签);
//法尔申酒店
falsch=0;
falschLabel=新的JLabel();
falschLabel.setText(“Anzahl der Falschen:+falsch”);
添加(falschLabel);
//普罗森巴尔·厄斯泰伦
progressBar=newJProgressBar(0,5);//最小值=0,最大值=5
添加(进度条);
}  
//方法1之二20
私人住宅
{
int x=(int)(Math.random()*20+1);
返回x;
}
已执行的公共无效操作(操作事件e)
{
//贝努泽雷因加贝酒店
如果(例如getSource()==benutzerWert){
int versuch;
//字符串(benutzerWert),单位为整数umwandeln+,单位为Versuch einf。
versuch=Integer.parseInt(benutzerWert.getText());
如果(versuch>z)
{
eingabeTipp.setText(“Zu groß!”);
SwingUtilities.updateComponentTreeUI(eingabeTipp);
getContentPane().setBackground(颜色为.RED);
设置前景(颜色为黑色);
设置前景(颜色:黑色);
falsch++;
falschLabel.setText(“Falsche:+falsch”);
}
if(versuch
如果答案是正确的,它应该在“Richtige”中加1,在“Falsche”中加1,如果计时器在5,在尝试回答问题时,它应该跳到下一个问题(所以是新值)。

到m
if(e.getSource()==benutzerWert) { // below this line, add

  int anzahlAntworten = falsch + richtig;
  progressBar.setValue(anzahlAntworten);
  if (anzahlAntworten > 5) {
    // whatever should happen if the end of the progressBar is reached, maybe reset? or GameOver?
  } 
  // ...