编译器看不到主方法



编译器看不到main方法,我无法运行程序,也许问题是因为我在最后一个子类中设置了main方法?我有父亲类Nasleřivanje,孩子类Panel1,它扩展了NasleÇivanj,Panel1的孩子类是Panel2,它扩展Panel1,我把主要方法放在Panel中,这个问题是吗?如何更正代码以使其正常工作。

package nasleđivanje;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Nasleđivanje{
protected JFrame okvir;
protected JPanel prviPanel;
protected JTextArea txtPolje;
protected void kreirajOkvir(){
    okvir=new JFrame();
    okvir.setSize(500, 400);
    okvir.setLayout(new BorderLayout());
    okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    prviPanel=new JPanel();
    prviPanel.setLayout(new BorderLayout());
    txtPolje=new JTextArea();
    prviPanel.add(txtPolje,BorderLayout.CENTER);
    okvir.add(prviPanel,BorderLayout.CENTER);
   }
}
class Panel1 extends Nasleđivanje {
    protected JButton dugme1,dugme2;
    public void kreirajPanel(){
    dugme1=new JButton("Text 1");
    dugme1.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
            txtPolje.setText("Kliknuli ste na prvo dugme");
        }
    });
    dugme2=new JButton("Text 2");
    dugme2.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
            txtPolje.setText("Kliknuli ste na drugo dugme");
        }
    });
    prviPanel.add(dugme1,BorderLayout.WEST);
    prviPanel.add(dugme2, BorderLayout.WEST);
           }
 }
   class Panel2 extends Panel1{
protected JButton dugme3,dugme4;

       public void kreirajPanel(){
    dugme3=new JButton("Promeni boju");
    dugme3.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
            prviPanel.setBackground(Color.BLACK);
        }
    });
    dugme4=new JButton("Izlaz");
    dugme4.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
            System.exit(0);
        }
    });
    prviPanel.add(dugme3, BorderLayout.NORTH);
    prviPanel.add(dugme4,BorderLayout.NORTH);
   }
     public void pokreniGUI(){
    okvir.setVisible(true);
       }

public Panel2(){
    super.kreirajOkvir();
    this.kreirajPanel();
    super.kreirajPanel();
}
public static void main(String[] args) {
    Panel2 start=new Panel2();
    start.pokreniGUI();
  }
 }

1)在一个文件中有多个类。不要那样做。每个文件仅一个类(及其私有类)。

因为您这样做了,所以您的主类中没有main方法。由于它的位置,您的main方法是Panel2类的一部分。将main方法放在main类中,并将类分离到单独的文件中。

编译器看不到主方法,我无法运行程序,

Main方法充当程序的入口点,Java中的每个类都允许有自己的main()方法。因此,如果您的项目中有多个类,并且在运行项目时,它将从为您的项目设置的主类的main()方法运行。

如果你正在运行你的项目,

1) 确保主类或中有一个主方法

2) 更改项目中的主类,并确保该类包含主方法。

通常情况下,IDE会通过将public类的名称传递给java解释器来配置运行应用程序。假设这样,是的,在publicNasleđivanje中没有main方法。您可以将main作为一个简单的解决方案移动到那里。

或者,您可以将IDE配置为运行Panel2而不是Nasleđivanje。Java将允许您运行正确的main方法,即使封闭类不是public

最新更新