我想在我的按钮上添加计数器我还想学习如何设置每个计数器,以便我可以在计算机上打开一个文件,一旦它达到我在
中设置的设定数量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();
}
});
}
}
`
请帮助我成为一名菜鸟,我花了几周的时间才找到了这么多。
答案 0 :(得分:0)
在您的代码中,您已向容器添加了一个按钮,但您尚未向该按钮添加任何侦听器 - 因此它不会通过单击它执行任何操作...
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。
答案 1 :(得分:0)
如果要计算按下按钮的次数,则需要一个ActionListener。这是一个例子:
public class IListen implements ActionListener
{
int hits = 0;
public IListen()
{
JFrame frame = new JFrame("Title");
JPanel panel = new JPanel();
JButton button = new JButton("hello!");
button.addActionListener(this);
panel.add(button);
frame.add(panel);
frame.setSize(200,200);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
JButton source = e.getSource();
if(source == button)
hits++;
System.out.println("you hit my button "+hits+" times!");
}
public static void main(String args[])
{
new IListen();
}
}
我没有自己编译,如果有语法错误就很抱歉,希望这会帮助你扩大你的编程能力。
答案 2 :(得分:0)
您需要知道的所有事情都是HERE。如果花了几周的时间来完成那么多工作,那么完全阅读教程对你来说非常有益。