Java 编译器don';我看不出主要的方法
编译器看不到main方法,我无法运行程序,可能是因为我在最后一个子类中设置了main方法?我有父类Nasleđivanje,子类Panel1,它扩展了Nasleđivanje,子类Panel1,它的Panel2,它扩展了Panel1,我把主要方法放在Panel中,这个问题是吗?如何更正代码以使其正常工作Java 编译器don';我看不出主要的方法,java,swing,inheritance,Java,Swing,Inheritance,编译器看不到main方法,我无法运行程序,可能是因为我在最后一个子类中设置了main方法?我有父类Nasleđivanje,子类Panel1,它扩展了Nasleđivanje,子类Panel1,它的Panel2,它扩展了Panel1,我把主要方法放在Panel中,这个问题是吗?如何更正代码以使其正常工作 package nasleđivanje; import javax.swing.*; import java.awt.*; import java.awt.event.*; public c
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方法。由于主方法的位置,它是Panel2类的一部分。将main方法放在main类中,并将类分离到单独的文件中。通常,IDE会通过将
public
类的名称传递给java
解释器来配置运行应用程序。假设这样,是的,在public
类Nasleđivanje
中没有main
方法。作为一个简单的解决方案,您可以将main
移动到那里
或者,您可以将IDE配置为运行Panel2
,而不是Nasleđivanje
。Java将允许您运行适当的main
方法,即使封闭类不是public
编译器看不到main方法,我无法运行程序
Main方法充当程序的入口点,Java中的每个类都允许有自己的Main()
method。因此,如果项目中有多个类,并且在运行项目时,它将从为项目设置的主类的main()
方法运行
如果您正在运行您的项目
1) 确保在主类或
2) 更改项目中的主类并确保该类包含主方法。(除非您使用的是内部类,这是另一个主题;)@MadProgrammer,这就是我所说的“私有类”。。。同样的想法。内部类可以是私有的;),但我只是太挑剔了;)是的,你是。当然,“内部类”是正确的术语。私人课堂是我忘记了“内部课堂”这个词,LOL如何改变我的主要课堂project@GlacialMan如果您使用的是IDE而不是记事本,请在类或项目的选项中进行探索,您可以在那里对其进行更改。很难指导您,因为我不知道您使用的是什么IDE。