2016-05-03 7 views
1

Компилятор не видит основной метод, и я не могу запустить программу, может быть, проблема в том, что я задал основной метод в последнем дочернем классе? У меня есть класс отца Nasleđivanje, дочерний класс Panel1, который расширяет Nasleđivanje, а дочерний класс 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

1) У вас есть несколько классов в одном файле. НЕ ДЕЛАЙ ЭТОГО. ТОЛЬКО один класс (и его частные классы) для каждого файла.

Поскольку вы сделали это, ваш основной класс не имеет в нем основного метода. Ваш основной метод является частью класса Panel2 из-за его местоположения. Поместите основной метод в основной класс и разделите свои классы на отдельные файлы.

+1

(за исключением случаев, когда вы используете внутренние классы, что является другой темой;)) – MadProgrammer

+0

@MadProgrammer Это то, что я имею в виду под «частными классами» ... той же идеей. –

+0

Внутренние классы могут быть частными;), но я просто придирчива;) – MadProgrammer

0

Обычно IDE настраивает запуск приложения путем передачи имени класса public интерпретатору java. Предположим, что в вашем public классе Nasleđivanje нет метода main. Вы можете переместить main там как простое решение.

Или вы можете настроить свою IDE для запуска Panel2 вместо Nasleđivanje. Java позволит вам запустить надлежащий метод main, даже если входящий класс не является public.

1

Компилятор не видят основной метод, и я не могу запустить программу,

Основной метод действует как точка входа для вашей программы, и каждый класс в Java разрешено иметь свой собственный метод main() , Следовательно, если у вас есть несколько классов в вашем проекте, и когда вы запускаете проект, он будет запускаться из метода main() основного класса, который будет установлен для вашего проекта.

Если вы используете свой проект,

1) Убедитесь, что есть главный метод в главном классе или

2) Измените основной класс в проекте и убедитесь, что класс содержит основной метод.

+0

Как сменить main в моем проекте – GlacialMan

+0

@GlacialMan Если вы используете IDE не блокнот, изучите варианты своего класса или проекта, там вы можете его изменить , Трудно направить вас, так как я не знаю, какую IDE вы используете. – user3437460

Смежные вопросы