java给按钮添加事件的问题

事件写在一个类中,可以实现。单击这三个按钮,文本框显示对于按钮的文本。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonListener extends JFrame implements ActionListener{
JButton ok, cancel,exit;
JTextField t=new JTextField(8);
public ButtonListener(String title){
super(title);
this.setLayout(new FlowLayout());
ok = new JButton("确定");
cancel = new JButton("返回");
exit = new JButton("退出");
ok.addActionListener(this);
cancel.addActionListener(this);
exit.addActionListener(this);
getContentPane().add(ok);
getContentPane().add(cancel);
getContentPane().add(exit);
getContentPane().add(t);
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==ok)
t.setText("确定");
if(e.getSource()==cancel)
t.setText("返回");
if(e.getSource()==exit)
t.setText("退出");
}
public static void main(String args[]) {
ButtonListener pd=new ButtonListener("ActionEvent Demo");
pd.setSize(250,100);
pd.setVisible(true);
}
}

我想把它写成两个类,两个源文件,还实现上面的结果应该怎么写呢?
一个ButtonListener1类,一个 MyListener类
注意:ButtonListener1类和, MyListener类是各写在一个单独的源文件中的。
//ButtonListener1类源文件
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonListener1 extends JFrame {
JButton ok, cancel,exit;
JTextField t=new JTextField(8);
public ButtonListener1(){
//super(title);
this.setLayout(new FlowLayout());
ok = new JButton("确定");
cancel = new JButton("返回");
exit = new JButton("退出");
ok.addActionListener(new MyListener());
cancel.addActionListener(new MyListener());;
exit.addActionListener(new MyListener());;
getContentPane().add(ok);
getContentPane().add(cancel);
getContentPane().add(exit);
getContentPane().add(t);
}

public static void main(String args[]) {
ButtonListener1 pd=new ButtonListener1();
pd.setSize(250,100);
pd.setVisible(true);
}
}

// MyListener类源文件
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getActionCommand()=="确定"){

}

if(e.getActionCommand()=="返回"){

}

if(e.getActionCommand()=="退出"){

}
}

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
class ButtonListener1 extends JFrame
{
JButton ok, cancel, exit;
JTextField t = new JTextField(8);
public ButtonListener1()
{
// super(title);
this.setLayout(new FlowLayout());
ok = new JButton("确定");
cancel = new JButton("返回");
exit = new JButton("退出");
ok.addActionListener(new MyListener(this));
cancel.addActionListener(new MyListener(this));
exit.addActionListener(new MyListener(this));
getContentPane().add(ok);
getContentPane().add(cancel);
getContentPane().add(exit);
getContentPane().add(t);
}
public static void main(String args[])
{
ButtonListener1 pd = new ButtonListener1();
pd.setSize(250, 100);
pd.setVisible(true);
}
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class MyListener implements ActionListener
{
private ButtonListener1 frame;
public MyListener()
{
}
public MyListener(ButtonListener1 frame)
{
this.frame = frame;
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand() == "确定")
{
frame.t.setText("确定");
}
if (e.getActionCommand() == "返回")
{
frame.t.setText("返回");
}
if (e.getActionCommand() == "退出")
{
frame.t.setText("退出");
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-29
1、 ButtonListener1 在 JTextField t=new JTextField(8) 前面添加 public static , 然后MyListener 中这样调用 ButtonListener1 .t.setText("确定/返回/退出"); 这样就行了,我这里贴不了效果图,不知道为什么。
第2个回答  2013-03-29
你不是已经写的差不多了啊,就是不知道怎么输出按钮的文本嘛? ActionEvent e 这个 e 里面可以获取点击的对象,强转成 JButton 就可以获得按钮的内容了啊。

java中添加键盘事件的问题
当然是给你的按钮添加事件了伪代码:ActionListener loginAction = new ActionListener() {。。} jButton.registerKeyboardAction(loginAction, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);

java如何为对话框添加按钮,以及如何为按钮添加事件?
第二添加事件监听就象我以前说的一样 使用的是btn.addActionListener(new ActionListener(){ 事件代码 });我补充了一下你的代码 如下:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dialog;import java.awt.event.ActionEvent;import java.awt.event....

JAVA中给一个按钮添加两个不同事件
btn2.setlocation(11,10);意思是x坐标11,你的第一个按钮width是30,所以第二个按钮压住了第一个按钮,btn2.setlocation(200,10);试试

java中如何给button指定按键。 比如: button b=new button(); 我想让...
你首先要获取的按键事件并取到它的值就可以绑定事件了 enter的键值为13 var keyCode = event.which || event.keyCode; 这是js中的取值方法

java按钮的动作事件,为什么这句代码出错?
因为getSource()方法返回的对象的类型是Object类型的,Object类并没有定义setForeground方法。 要进行强制类型转换,改成:((JButton)ae.getSource()).setForeground(Color.RED);

JAVA 用for创建多个按钮,怎么对15号按钮设置监听事件? for(int i=0...
循环里加个判断就行了呀,还按你的例子:for(int i=0;i<20;i++){ JButton b=new JButton("mmm"+i);\/\/为15号按钮加事件 if (i == 15) { b.addActionListener(new ActionListener( ) { public void actionPerformed(ActionEvent e) { } }) ;} } ...

我的java怎样给按钮添加一个当按钮被点击时窗口关闭?请举个例子。swing...
系统不关闭,只是隐藏窗体!在按钮的监听事件中获取到窗体,然后设置窗体的visible属性为false既可以 例如:public class window { public static void main(String[] arg0){ myWindow mw=new myWindow();mw.setVisible(true);} } class myWindow extends JFrame{ private JButton jb=null;public my...

java按钮添加事件
首先获取你需要清空表格的对象,然后给按钮绑定removeAll()事件,例如:click:对象.removeAll();

java按钮问题
须填写信息的输入框绑定onchange事件,一旦填写符合要求,给一个全局变量加1,如果全局变量达到规定的数量,比如10个,都符合要求了就将提交置为可用。

紧急求教 Java程序中按钮事件有什么错误?
package xiti;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Press_Me extends Frame implements ActionListener{ TextField t;int n; \/\/存储点击的次数 Button btn;public static void main(String[] args) { Press_Me p=new Press_Me();p.setLayout(new Flow...

相似回答