我需要帮助制作一个有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);
}
}
答案 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。希望这对你有用! 最好的运气。