User interface 计数--递增错误
我已经用Java编写了一个GUI程序,您可以在选择10秒、5分钟或1分钟后启动和停止计时器。数字将倒计时,但在2内递增。所以它会变成10,8,6,4,2,0 其他一切都很好,但我似乎不知道柜台出了什么问题。这是我的密码User interface 计数--递增错误,user-interface,timer,increment,countdown,User Interface,Timer,Increment,Countdown,我已经用Java编写了一个GUI程序,您可以在选择10秒、5分钟或1分钟后启动和停止计时器。数字将倒计时,但在2内递增。所以它会变成10,8,6,4,2,0 其他一切都很好,但我似乎不知道柜台出了什么问题。这是我的密码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class countdownPanel extends JPanel { private ImageIcon banne
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class countdownPanel extends JPanel
{
private ImageIcon banner;
private JComboBox selectCombo;
private JButton stopButton, startButton;
private JLabel picture, theCount;
private Timer timer;
public countdownPanel()
{
setLayout(new BorderLayout());
setBackground(Color.black);
//Banner Image
banner = new ImageIcon ("banner.jpg");
picture = new JLabel(banner);
//Count Down selecter
JComboBox selectCombo = new JComboBox();
selectCombo.addItem("10 Seconds");
selectCombo.addItem("1 Minute");
selectCombo.addItem("5 Minutes");
//countdown components
theCount = new JLabel(" 0");
theCount.setFont(new Font("Helvetica", Font.BOLD, 200));
timer = new Timer(1000, new TimerListener());
//Stop Start Buttons
startButton = new JButton("Start");
stopButton = new JButton("Stop");
ButtonListener listener = new ButtonListener();
startButton.addActionListener(new ButtonListener());
stopButton.addActionListener(new ButtonListener());
selectCombo.addActionListener(new ComboListener());
timer.addActionListener(new TimerListener());
//GUI set up
add(picture, BorderLayout.NORTH);
add(startButton, BorderLayout.WEST);
add(selectCombo, BorderLayout.CENTER);
add(stopButton, BorderLayout.EAST);
add(theCount, BorderLayout.SOUTH);
}
//combo box listener
private class ComboListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
JComboBox levelCombo = (JComboBox) event.getSource();
Object selected = levelCombo.getSelectedItem();
if(selected.toString().equals("10 Seconds"))
theCount.setText("10");
if(selected.toString().equals("1 Minute"))
theCount.setText("60");
if(selected.toString().equals("5 Minutes"))
theCount.setText("300");
}
}
//Start and stop button listeners
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
Object source = event.getSource();
//starts timer
if (event.getSource()== startButton)
timer.start();
//stops timer
if (event.getSource()== stopButton)
timer.stop();
}
}
private class TimerListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String A = theCount.getText();
int count = Integer.parseInt(A);
while(count < 0)
{
count--;
theCount.setText(""+ count);
}
if(count == 0)
theCount.setText(" GO!");
}
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类倒计时面板扩展JPanel
{
私人图像图标横幅;
私人JComboBox选择组合;
私人按钮停止按钮,开始按钮;
私人JLabel图片,count;
私人定时器;
公众倒计时小组()
{
setLayout(新的BorderLayout());
挫折背景(颜色:黑色);
//横幅图像
banner=新图像图标(“banner.jpg”);
图片=新的JLabel(横幅);
//倒计时选择器
JComboBox selectCombo=新建JComboBox();
选择Combo.addItem(“10秒”);
选择Combo.addItem(“1分钟”);
选择Combo.addItem(“5分钟”);
//倒计时组件
计数=新的JLabel(“0”);
count.setFont(新字体(“Helvetica”,Font.BOLD,200));
计时器=新的计时器(1000,新的TimerListener());
//停止-启动按钮
startButton=新的JButton(“开始”);
stopButton=新按钮(“停止”);
ButtonListener侦听器=新建ButtonListener();
addActionListener(新按钮Listener());
addActionListener(newbuttonListener());
选择Combo.addActionListener(新建ComboListener());
addActionListener(新的TimerListener());
//GUI设置
添加(图片,边界布局。北);
添加(开始按钮,BorderLayout.WEST);
添加(选择Combo,BorderLayout.CENTER);
添加(停止按钮,BorderLayout.EAST);
添加(count,BorderLayout.SOUTH);
}
//组合框侦听器
私有类ComboListener实现ActionListener
{
已执行的公共无效操作(操作事件)
{
JComboBox levelCombo=(JComboBox)事件。getSource();
所选对象=levelCombo.getSelectedItem();
if(selected.toString()等于(“10秒”)
count.setText(“10”);
if(selected.toString()等于(“1分钟”)
count.setText(“60”);
if(selected.toString()等于(“5分钟”)
计数设置文本(“300”);
}
}
//启动和停止按钮侦听器
私有类ButtonListener实现ActionListener
{
已执行的公共无效操作(操作事件)
{
Object source=event.getSource();
//启动计时器
if(event.getSource()==startButton)
timer.start();
//停止计时器
if(event.getSource()==stopButton)
timer.stop();
}
}
私有类TimerListener实现ActionListener
{
已执行的公共无效操作(操作事件)
{
字符串A=count.getText();
int count=Integer.parseInt(A);
而(计数<0)
{
计数--;
计数设置文本(“+计数);
}
如果(计数=0)
count.setText(“开始!”);
}
}
}
change count0 and See我试过了,但它根本没有倒计时,count<0工作并以正确的方式倒计时它只是倒计时2秒,这很奇怪。如果countYes我知道这就是我想知道的,为什么它倒计时正确,它从10开始,然后是8、6、4、2、0,然后我把它停在0处。只是不按个数而已