gpt4 book ai didi

java - 如何向 GUI 添加计数器

转载 作者:行者123 更新时间:2023-12-01 05:21:33 26 4
gpt4 key购买 nike

我希望向我的按钮添加计数器,我还想了解如何设置每个计数器,以便当它达到我在

中设置的设定计数时,我可以让它在我的计算机上打开一个文件
package layout;

import java.awt.Component;
import java.awt.Container;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class BoxLayoutDemo {
public static void addComponentsToPane(Container pane) {
pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
addAButton("Section 1", pane);
addAButton("Section 2", pane);
addAButton("Section 3", pane);
addAButton("Section 4", pane);
addAButton("Section 5", pane);
addAButton("Section 6", pane);
addAButton("Section 7", pane);
addAButton("Section 8", pane);
addAButton("Section 9", pane);
}

private static void addAButton(String text, Container container) {
JButton button = new JButton(text);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(button);
}


private static void createAndShowGUI() {

JFrame frame = new JFrame("Counter");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


addComponentsToPane(frame.getContentPane());

frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
`

请帮助我,我是一个菜鸟,我花了几周的时间才找到如何做到这一点。

最佳答案

在您的代码中,您已向容器添加了一个按钮,但尚未向该按钮添加任何监听器 - 因此单击它不会执行任何操作...

private static void addAButton(String text, Container container) { 
JButton button = new JButton(text);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(button);
}

因此,您需要向按钮添加一个 ActionListener,并让它增加一个计数器。在您的操作监听器中,您可以添加一个计数器。

新代码可能如下所示:

private static void addAButton(String text, Container container) { 
JButton button = new JButton(text);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
button.addActionListener(new ButtonListener());
container.add(button);
}

class ButtonListener implements ActionListener {
int numClicks;
static int buttonClicks = 0;
ButtonListener() {
numClicks = 0;
}
public void actionPerformed(ActionEvent e) {
buttonClicks++;
numClicks++;
// do some action
}
public int getNumClicks() { return numClicks; }
static public int getButtonClicks() { return buttonClicks; }
}

在此示例中,我添加了两个方法:
1) getNumClicks():获取此ButtonListener实例中的点击次数(只要为每个按钮添加一个新的ButtonListener,这对于每个按钮来说都是唯一的。)
2) getButtonClicks():获取所有实例的点击次数

更好的方法是扩展 JButton 以创建您自己的自定义按钮,然后您可以将这些方法添加到按钮本身而不是 ButtonListener。

关于java - 如何向 GUI 添加计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338494/

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