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 无法解析为类型 展开
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 无法解析为类型 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询