静态类的非法表达式开始?

时间:2013-09-16 00:52:04

标签: java swing

我是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);
                        }
                      }

                    }

                }   



        }

1 个答案:

答案 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 classesstatic nested classes

相关: