import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main implements ActionListener {
public static void main(String[] args) {
JFrame f = new JFrame();
JPanel p = new JPanel();
Label l = new Label("Sam");
Button b = new Button("Click me");
Label l2 = new Label();
l.setBounds(3,5,4000,5000);
l.setForeground(Color.BLUE);
b.setLocation(5,5);
b.setSize(1,1);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500,600);
f.setResizable(false);
p.add(l);
p.add(b);
p.setBackground(Color.red);
f.add(p);
b.addActionListener(this);
public void actionPerformed(ActionEvent e){
String str = e.getActionCommand();
if(str.equals("Click me"))
System.out.println("GM");
}
}
}
这就是为什么Intellij在actionPerformed方法中显示错误。
它们在ActionEvent e的声明中显示错误。
错误:
请帮助我,我是初学者。
这也是正确的:b.addActionListener(this); ?
答案 0 :(得分:1)
将actionPerformed()
方法移出main()
方法。
答案 1 :(得分:0)
....
b.addActionListener(this);
public void actionPerformed(ActionEvent e){
String str = e.getActionCommand();
if(str.equals("Click me"))
System.out.println("GM");
}
}
应该是
....
b.addActionListener(new Main());
}
public void actionPerformed(ActionEvent e){
String str = e.getActionCommand();
if(str.equals("Click me"))
System.out.println("GM");
}
您已经在另一个方法中定义了一个方法,这在Java中是非法的。
根据您的代码,new Main()
很好。但是,这不是最佳方法。更好的实现如下:
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame();
JPanel p = new JPanel();
Label l = new Label("Sam");
Button b = new Button("Click me");
Label l2 = new Label();
l.setBounds(3,5,4000,5000);
l.setForeground(Color.BLUE);
b.setLocation(5,5);
b.setSize(1,1);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500,600);
f.setResizable(false);
p.add(l);
p.add(b);
p.setBackground(Color.red);
f.add(p);
b.addActionListener(new ActionListener{
@Override
public void actionPerformed(ActionEvent e){
String str = e.getActionCommand();
if(str.equals("Click me"))
System.out.println("GM");
}
});
}
}
答案 2 :(得分:0)
公共类主要实现ActionListener {
main(){
JFrame f = new JFrame();
JPanel p = new JPanel();
Label l = new Label("Sam");
Button b = new Button("Click me");
Label l2 = new Label();
l.setBounds(3,5,4000,5000);
l.setForeground(Color.BLUE);
b.setLocation(5,5);
b.setSize(1,1);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500,600);
f.setResizable(false);
p.add(l);
p.add(b);
p.setBackground(Color.red);
f.add(p);
f.setVisible(true);
b.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(str.equals("Click me"))
System.out.println("GM");
}
public static void main(String [] args){ main obj = new main();
}
}