JAVA按钮触发动作事件,请帮忙分析一下错误原因,谢谢。 10

packageevent;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassA... package event;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Action
{
public class ButtonActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton button=(JButton)e.getSource();
String buttonName=e.getActionCommand();
if(buttonName.equals("登陆"))
{
button.setText("退出登陆");
JOptionPane.showMessageDialog(null,"您已成功登陆!","消息",JOptionPane.INFORMATION_MESSAGE);
}
else
{
button.setText("登录");
JOptionPane.showConfirmDialog(null, "您确定要退出吗?", "消息",JOptionPane.YES_NO_OPTION);
}
}
}
public static void createAndShowGUI()
{
JFrame frame=new JFrame();
frame.setTitle("动作事件");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,160);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

JPanel panel=new JPanel();
frame.add(panel,BorderLayout.SOUTH);

JButton OKButton=new JButton("登陆");
//OKButton.addActionListener(new ButtonActionListener());
OKButton.addActionListener(OKButton.new ButtonActionListener());

panel.add(OKButton);
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
开始用这句:OKButton.addActionListener(new ButtonActionListener());
报错:没有任何类型 Action 的外层实例可访问。必须用类型 Action 的外层实例(例如,x.new A(),其中 x 是 Action 的实例)来限定分配。

改成这句:OKButton.addActionListener(OKButton.new ButtonActionListener());

报错:JButton.ButtonActionListener 无法解析为类型
展开
 我来答
wfh45678
2013-07-25 · TA获得超过291个赞
知道小有建树答主
回答量:781
采纳率:0%
帮助的人:419万
展开全部
public class Action
{
public class ButtonActionListener implements ActionListener ????

两个public 关键字啊,这样写太不规范了,
直接新建一个类 把ButtonActionListener 提取出来就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式