java给按钮添加事件的问题

事件写在一个类中,可以实现。单击这三个按钮,文本框显示对于按钮的文本。importjava.awt.*;importjava.awt.event.*;importjava... 事件写在一个类中,可以实现。单击这三个按钮,文本框显示对于按钮的文本。
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()=="退出"){

}
}
展开
 我来答
lf200812
推荐于2018-03-04 · TA获得超过710个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:102万
展开全部
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("退出");
}
}
}
百度网友30bb719
2013-03-29 · TA获得超过348个赞
知道小有建树答主
回答量:310
采纳率:75%
帮助的人:209万
展开全部
1、 ButtonListener1 在 JTextField t=new JTextField(8) 前面添加 public static , 然后MyListener 中这样调用 ButtonListener1 .t.setText("确定/返回/退出"); 这样就行了,我这里贴不了效果图,不知道为什么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱看电影
2013-03-29
知道答主
回答量:63
采纳率:0%
帮助的人:20.8万
展开全部
你不是已经写的差不多了啊,就是不知道怎么输出按钮的文本嘛? ActionEvent e 这个 e 里面可以获取点击的对象,强转成 JButton 就可以获得按钮的内容了啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式