Java Void对于变量main无效?

Java Void对于变量main无效?,java,Java,如何修复错误,Void对于main变量无效?我试着在网上查找,但什么也找不到。另外,我是新来的,所以请对我放轻松。我边走边学 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; i

如何修复错误,Void对于main变量无效?我试着在网上查找,但什么也找不到。另外,我是新来的,所以请对我放轻松。我边走边学

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Text extends JFrame
{


   JPanel jp = new JPanel();
   JLabel jl = new JLabel();
   JTextField jt = new JTextField("Month",30);
   JTextField jt2 = new JTextField("Date",30);
   JButton jb = new JButton("Enter");

   public Text()
   {
       public static void main (String[] args); {
          setTitle("Tutorial");
          setVisible(true);
          setSize(400, 200);
          setDefaultCloseOperation(EXIT_ON_CLOSE);

          jp.add(jt);
          jp.add(jt2);


          jt.addActionListener(new ActionListener()
          {
                 public void actionPerformed(ActionEvent e)
                 {
                       String input = jt.getText();
                       jl.setText(input); 
                 }
          });

          jp.add(jb);
          jb.addActionListener(new ActionListener()
          {
                  public void actionPerformed(ActionEvent e)
                  {


                         String input = jt.getText();
                         String input2 = jt2.getText();
                         jl.setText(input);
                         jl.setText(input2);
                         int day = Integer.parseInt(input2);
                            if ((input.equals("Test")) && (input2.equals(day >= 26)))//||(input2.equals("27")))))
                                JOptionPane.showMessageDialog(null, "" , "" ,JOptionPane.PLAIN_MESSAGE,aries);
                  }

          });


          add(jp);

   }

   }
}  

Java不允许在其他方法中定义方法。将
main
方法移出
Text
构造函数,并删除提前终止语句的分号

此外,您还有许多属于
JFrame
的方法(例如
setTitle
setVisible
)-这些方法需要移动到实例代码块中,以使其可访问

public class Text extends JFrame {

    JPanel jp = new JPanel();
    JLabel jl = ...

    public Text() {
        setTitle("Tutorial");
        setVisible(true);
        ...

        add(jp);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Text().setVisible(true);
            }
        });
    }
}

您已将
main
方法放置在
类文本的构造函数中。它属于构造函数外部,与构造函数处于同一级别。将其移到构造函数之外

public class Text extends JFrame
{


   JPanel jp = new JPanel();
   JLabel jl = new JLabel();
   JTextField jt = new JTextField("Month",30);
   JTextField jt2 = new JTextField("Date",30);
   JButton jb = new JButton("Enter");

   public static void main (String[] args); {
      setTitle("Tutorial");
      setVisible(true);
      setSize(400, 200);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      ...
   }

   public Text()
   {
      ...
   }
   ...
}

删除
main
方法声明之后:

public static void main (String[] args);
                                       ^-------- Delete this
并将
main
方法移出构造函数:

public Text() {
...
}

public static void main(...) {
...
}
可能重复的