按钮反Java

时间:2012-03-06 19:05:24

标签: java swing jbutton counter actionlistener

我需要帮助制作一个有2个按钮的程序。单击按钮时会显示一条消息“我被点击了一次!”。每个按钮都应有单独的点击次数。

    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;

    public class ButtonViewer
    {
      private static final int FRAME_WIDTH = 400;
      private static final int FRAME_HEIGHT = 360;


 public static void main(String[] args)
 {
     int counter1 = 0;
     int counter2 = 0;

     JFrame frame = new JFrame();
     JButton button = new JButton("Click me!");
     frame.add(button);

     JFrame frame2 = new JFrame();
     JButton button2 = new JButton("Click me too!");
     frame2.add(button2);

     ActionListener listener = new ClickListener();
     button.addActionListener(listener);
     button2.addActionListener(listener);

     counter1++;
     counter2++;

     frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setVisible(true);

     frame2.setSize(FRAME_WIDTH, FRAME_HEIGHT);
     frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame2.setVisible(true);
 }
}

5 个答案:

答案 0 :(得分:3)

开始你需要实际添加一个ClickListener,通过实际编写下面的另一个方法,如:

private class listener1 implements ActionListener{
    public void actionPerformed(ActionEvent e){
        counter1++;
    }
}

在这种情况下,你有2个这样的类......每个按钮一个。 当按下按钮时,第二个监听器只会递增另一个计数器。

答案 1 :(得分:0)

一个简单的解决方案是实现ActionListener内联。只是做:

button2.addActionListener( new ActionListener(){
...
});

在那里实现actionperfomed方法时,您可以轻松更改button2的文本。

答案 2 :(得分:0)

您没有对动作侦听器进行回调,因此当您单击按钮时,侦听会知道发生了什么,但没有任何指示说明该做什么。就像@KingWilliam提到的那样,这看起来像是家庭作业,所以调查行动听众回电应该足以让你的装备动起来。

答案 3 :(得分:0)

监听器是一个接口,因此在实现类中,您需要确保实现了actionPerformed()方法。你只需要检测'click'事件的资源,如果它来自按钮增加按钮的计数器,并且相同的按钮2,。

答案 4 :(得分:0)

为计数初始化两个变量,比如count1,count2。对于Button 1,将匿名类注册为事件监听器,如下所示:

button1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
        count1++;
        new CustomMessage(count1);
    }
});

CustomMessage应该是这样的:

class CustomMessage extends javax.swing.JDialog{
    public CustomMessage( int counter){
    //...
    }
}

确保在邮件中加入“计数器”。 类似地按下button2。希望这对你有用! 最好的运气。