2016-09-22 3 views
-1

Ich habe einige Probleme mit der line this.add(p). Ich bekomme einen Fehler, der besagt, dass 'das nicht in einem statischen Kontext verwendet werden kann' - Ja, das ist eine sehr einfache Frage, aber kann jemand erklären, warum diese Leitung nicht funktioniert und statische Modi?Statische Modi in 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."); 
     } 


    } 
    } 

(Und ja, ich bin mir bewusst, ich viele Swings importiert haben, ich war gerade Herumspielen, was da ich importieren.) Eine Antwort, dass ein neuer Coder würde geschätzt konnte verstehen, stark! Danke

+0

Ändern Sie Ihre Frage nicht zu etwas ganz anderes, wenn es bereits eine Antwort hat die Erstausstellung Adressierung. Wenn Sie eine neue Frage/ein neues Problem haben, erstellen Sie einen *** neuen *** Beitrag. – Tom

Antwort

2

Sie Schlüsselwort bezieht sich auf die Instanz der Klasse. In einem statischen Kontext haben Sie keine Instanz, daher können Sie nicht darauf verweisen.

prüfen Link mehr über „dieses“ Schlüsselwort zu lernen: What is the meaning of "this" in Java?

+0

sollten Sie mainPanel dafür haben. Etwas wie mainPanel.add (newPanel1); – Rishi