2016-09-22 2 views
-1

У меня проблемы с line this.add(p). Я получаю сообщение об ошибке «не могу использовать это в статическом контексте». Да, это очень простой вопрос, но может ли кто-нибудь объяснить, почему эта строка не будет работать и статические режимы?Статические режимы на Java

import java.awt.Color; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import javax.swing.JButton; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
    import javax.swing.JTextField; 
    import javax.swing.JLabel; 
    import javax.swing.JButton; 
    import javax.swing.JOptionPane; 
    import javax.swing.JPanel; 
    public class LeapYear { 

    public static void main(String[] args) { 
     int nmbr; 
     nmbr = Integer.valueOf(JOptionPane.showInputDialog("enter any year")); 

     { 

      } 
      if (nmbr>0 && 4%nmbr==0) { 

       JPanel panel = new JPanel(); 
       panel.add(new JLabel("Name")); 
       panel.add(new JTextField(20)); 

       JButton start = new JButton(); 
       start.add(new JButton("Start")); 
       panel.setBackground(Color.YELLOW); 


       this.add(panel); 
       panel.setOpaque(false); 
     } 

     if ((nmbr % 5) == 0) { 
      System.out.print(nmbr + " is not multiple of 5."); 
     } 


    } 
    } 

(И да, я знаю, я импортировал многие Качели, я просто бездельничал, видя, что я могу импортировать.) ответ, что новый кодировщик мог понять, был бы весьма признателен! Спасибо

+0

Не изменить свой вопрос на что-то совершенно другое, когда у него уже есть ответ адресации первоначального вопроса. Если у вас есть новый вопрос/вопрос, создайте *** новую *** запись. – Tom

ответ

2

Ключевое слово this относится к экземпляру класса. В статическом контексте у вас нет экземпляра, поэтому вы не можете ссылаться на него.

Проверить эту ссылку, чтобы узнать больше о «этом» ключевом слове: What is the meaning of "this" in Java?

+0

у вас должна быть mainPanel для этого. Что-то вроде mainPanel.add (newPanel1); – Rishi

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