2013-10-02 13 views
0

panel.add()紅色有一些神祕的原因。 panel已在上面初始化!爲什麼'JPanel'不起作用?

public class ShowImage { 

    ImageIcon image = new ImageIcon("D:/java.jpg"); 
    JLabel label = new JLabel("sdasd", image, JLabel.CENTER); 
    JPanel panel = new JPanel(new BorderLayout()); 
    panel.add(label, BorderLayout.CENTER); 
} 

回答

7

您不能直接在類中調用方法。我相信你想在構造函數中調用它。

public class ShowImage { 
    ImageIcon image = new ImageIcon("D:/java.jpg"); 
    JLabel label = new JLabel("sdasd", image, JLabel.CENTER); 
    JPanel panel = new JPanel(new BorderLayout()); 

    public ShowImage(){ 
     panel.add(label, BorderLayout.CENTER); 
    } 
} 
4

您需要將所有代碼(或至少panel.add語句)放在方法中。你不能讓這段代碼在任何地方在課堂上閒逛。 Java中不允許在類中的任何位置調用方法。

你可以把它放在構造函數或init方法中。

public class ShowImage { 
    ImageIcon image = new ImageIcon("D:/java.jpg"); 
    JLabel label = new JLabel("sdasd", image, JLabel.CENTER); 
    JPanel panel = new JPanel(new BorderLayout()); 

    public void someInitMethod() { // or even the constructor 
     panel.add(label, BorderLayout.CENTER); 
    } 
}