如何给 NorthButton 按钮添加一个点击事件 点击后添出一个消息框显示点了NorthButton就行..
我试了几下,也看了几个老贴的例子..依然没改好,哪位朋友能告诉我下该把事件的实现代码加在哪里?或是说我这代码还有更多的问题?
谢谢!!
代码
************************************************************************
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class MyFrame extends JFrame
{
JPanel MyPanel;
JButton NorthButton;
JButton SouthButton;
JButton EastButton;
JButton WestButton;
MyFrame()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,300);
setTitle("东南西北BorderLayout练习");
Init();
show();
}
void Init()
{
MyPanel = (JPanel)getContentPane();
BorderLayout b = new BorderLayout();
MyPanel.setLayout(b);
NorthButton = new JButton("北");
SouthButton = new JButton("南");
EastButton = new JButton("东");
WestButton = new JButton("西");
NorthButton.setSize(60,20);
SouthButton.setSize(80,20);
MyPanel.add(NorthButton,BorderLayout.NORTH);
MyPanel.add(SouthButton,BorderLayout.SOUTH);
MyPanel.add(EastButton,BorderLayout.EAST);
MyPanel.add(WestButton,BorderLayout.WEST);
NorthButton.addActionListener(new my());//注册监听器
}
}
class my implements ActionListener //实现监听器
{
public void actionPerformed(ActionEvent e)
{
//是在这里面实现吗?我怎么弄不出来?
}
}
class Frame1
{
public static void main(String [] args)
{
MyFrame fr = new MyFrame();
}
}
----------------解决方案--------------------------------------------------------
或说有没有更简单的方法为一个按钮添加点击事件?
----------------解决方案--------------------------------------------------------
已找一种方法解决就是
NorthButton.addActionListener(new ActionListener(){ //注册监听器..其实就是添加监听器
public void actionPerformed(ActionEvent e) //实现监听器
{
NorthButton.setText("你已经点过我了!");
}
});
注册之后直接实现..现在想问一下可不可以注册监听器时参数改成自己编写的方法,而自己的方法去重写了public void actionPerformed(ActionEvent e)方法呢?
以1楼为例,如何改成上面红色代码的效果?
----------------解决方案--------------------------------------------------------
正如楼上所说的用匿名类实现;
或者为每个按钮加上addActionListener(this)后再在public void actionPerformed(ActionEvent e)函数里实现相应功能,你的问题是没有为你的JButton组件加入监听(addActionListener(this) )
----------------解决方案--------------------------------------------------------
谢谢!
现在我知道的问题已经大概又明白了一点点儿...
谢谢了~~
----------------解决方案--------------------------------------------------------
楼上的朋友建议点一下是以文本的方式提示
你是需要弹出一个消息框就应该改成:
NorthButton.addActionListener(new ActionListener(){ //注册监听器..其实就是添加监听器
public void actionPerformed(ActionEvent e) //实现监听器
{
JOptionPane.showMessageDialog(this,"你已点击了我","消息",JOptionPane.INFORMATION_MESSAGE);
}
}
----------------解决方案--------------------------------------------------------
感觉最好还是别用匿名类实现~~这样程序看上去很乱~~
----------------解决方案--------------------------------------------------------