为什么'JPanel'不起作用?

时间:2013-10-02 09:53:03

标签: java swing jpanel

由于一些神秘的原因,panel.add() 红色panel正在上面初始化!

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);  
}

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分: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);
    }
}