Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
User interface 计数--递增错误_User Interface_Timer_Increment_Countdown - Fatal编程技术网

User interface 计数--递增错误

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

我已经用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 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处。只是不按个数而已