【问题标题】:Java Button Click CounterJava 按钮点击计数器
【发布时间】:2017-01-16 03:50:06
【问题描述】:

我想制作一个按钮,每次单击它都会将变量 int 分数增加 1。到目前为止,我已经添加了该按钮,并且每次单击它都会添加一个按钮,但它不会替换旧分数,而是写入一个每次点击都会换行。

public class ButtonClicker extends JFrame implements ActionListener
{
    static int score = 0;

    public static void main (String[] args)
    {
        ButtonClicker run = new ButtonClicker();
        run.cole();
    } // main method

    public ButtonClicker () 
    {
        JFrame j = new JFrame("Window title");
        JButton click = new JButton("button");

        j.getContentPane().add(click);

        click.addActionListener(this);

        j.setSize(450,450);
        j.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        System.out.println("Score: " + score);
        score++;        
    }

    public void cole ()
    {

    }
} // ButtonClicker class

所以每次我点击而不是将 Score:0 替换为 Score: 1 等等,它都会添加一个新行。例子 得分:0 得分:1 得分:2 等等

【问题讨论】:

  • 混合 GUI 和基于控制台的应用程序不是一个好主意,用户对其中一个有期望。 Java 没有用于生成“漂亮”输出的本机控制台库,因此我建议您专注于使用新值更新 GUI
  • 是的,我知道,只是在学校里,我们正在通过一个名为 Ready To Program 的程序来学习,该程序是简化的 Java,带有内置控制台和基本的 JFrame。我一直在自学要走得更远,但还没有达到制作全面 GUI 的地步。
  • This 不是一个很好的解决方案,但它会起作用,但我个人会根据你的起点避免它......
  • 有没有办法可以在窗口上添加 JLabel 而不是使用控制台?因为目前如果我添加一个 JLabel 它会删除 JButton。

标签: java


【解决方案1】:

您正在终端本身打印结果,您不能像这样清除前一行,而是使用框架本身中的一个文本框来显示结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多