gpt4 book ai didi

Java定时器问题

转载 作者:行者123 更新时间:2023-12-02 00:33:56 24 4
gpt4 key购买 nike

我有一个模拟咖啡自动售货机的小程序。我正在尝试让文本“准备好”显示 5 秒。但它似乎不起作用。谁能告诉我我的计时器出了什么问题吗?

类 qn1 是 JApplet 的类。init() 将被调用来实例化变量。

我向这两个按钮添加了 Action 监听器,这样当我单击它们时它们就会使用react。

    import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;

public class qn1 extends JApplet implements ActionListener {

private static int FULL = 4;
private int coffees = FULL;
private JPanel p;
private JButton jbtw, jbtb;
private Dispenser dis;
private JLabel jlbl;
private Timer timer;

public void init() {
setLayout(new BorderLayout(5, 5));
setSize(400, 500);

p = new JPanel(new GridLayout(1, 2));
jbtw = new JButton("White");
jbtb = new JButton("Black");
jbtw.addActionListener(this);
jbtb.addActionListener(this);
p.add(jbtw);
p.add(jbtb);

add(p, BorderLayout.NORTH);

dis = new Dispenser();
add(dis, BorderLayout.CENTER);

jlbl = new JLabel("Select", SwingConstants.CENTER);
add(jlbl, BorderLayout.SOUTH);

timer = new Timer(50, this);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(jbtb) | e.getSource().equals(jbtw)) {
if (coffees - 1 >= 0) {
coffees--;
jlbl.setText("Ready " + coffees);
}

timer.setInitialDelay(5000);
timer.start();

if (coffees == 0) {
jlbl.setText("Empty");
} else {
jlbl.setText("Select" + coffees);
}
}
}
}

class Dispenser extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(0, 0, 25, 50);
g.drawLine(25, 50, 55, 50);
g.drawLine(55, 50, 80, 0);
}
}

最佳答案

您的计时器被调用,但如果源不是您的按钮之一,则您不会执行任何操作:

    if (e.getSource().equals(jbtb) | e.getSource().equals(jbtw)) {

要回答您的评论,您可能需要类似的内容:

    public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(jbtb) | e.getSource().equals(jbtw)) {
timer.setInitialDelay(5000);
timer.start();

if (coffees == 0) {
jlbl.setText("Empty");
} else {
jlbl.setText("Select " + coffees);
}
}
else {
if (coffees - 1 >= 0) {
coffees--;
jlbl.setText("Ready " + coffees);
}
}
}

关于Java定时器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com