我是Java的新手。我想显示一个带有两个按钮的Jframe。
单击每个按钮后,应显示不同的JOptionPane消息。
但是,我在Illegal start of expression
声明中收到错误static class
。
谁能解释为什么?我试过移动静态类但仍然是同样的错误。
这是我的代码......
import javax.swing.JOptionPane;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class main {
public main() {
}
public static void main(String[] args) {
String name = JOptionPane.showInputDialog(null, "What's your name?", "Enter your name", JOptionPane.PLAIN_MESSAGE);
System.out.println("\nWelcome, "+ name + ".");
System.out.print(terms);
JOptionPane.showMessageDialog(null, "Welcome to SkyWhale, " + name + ".\n" + deets + "\n" + terms , "Welcome, " + name + ".", JOptionPane.PLAIN_MESSAGE);
JFrame control = new JFrame("SkyWhale");
control.setVisible(true);
control.setSize(500,200);
control.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JButton chatbtn = new JButton("Live Chat");
JButton editorbtn = new JButton("Editor");
control.add(panel);
panel.add(chatbtn);
panel.add(editorbtn);
chatbtn.addActionListener(goToChat());
editorbtn.addActionListener(goToEdit());
static class goToEdit implements ActionListener {
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Code goes here...", "Editor", JOptionPane.PLAIN_MESSAGE);
}
}
static class goToChat implements ActionListener {
public void actionPerformed (ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Conversation...", "Live Chat", JOptionPane.PLAIN_MESSAGE);
}
}
}
}
}
答案 0 :(得分:2)
在Java中声明方法中的static
类是非法的。您可以在没有static
关键字的情况下声明本地类。
public static void main(String[] args) {
class Foo {
public void bar() {
System.out.println("inside Foo#bar()");
}
}
Foo foo = new Foo();
foo.bar();
}
或者您可以完全不使用该方法。要么在他们自己的编译单元中声明它们,即。 java
文件,inner classes或static
nested classes。
相关: