当前位置: 代码迷 >> Java相关 >> [求助]添加一个按钮事件
  详细解决方案

[求助]添加一个按钮事件

热度:475   发布时间:2006-10-17 15:03:59.0
[求助]添加一个按钮事件

如何给 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();
}
}

搜索更多相关的解决方案: 按钮  import  awt  java  NorthButton  

----------------解决方案--------------------------------------------------------
或说有没有更简单的方法为一个按钮添加点击事件?

----------------解决方案--------------------------------------------------------

已找一种方法解决就是
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);
}


}


----------------解决方案--------------------------------------------------------
感觉最好还是别用匿名类实现~~这样程序看上去很乱~~
----------------解决方案--------------------------------------------------------
  相关解决方案