0

はなぜか赤く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);  
}
4

2 に答える 2

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);
    }
}
于 2013-10-02T09:55:17.820 に答える
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);
    }
}
于 2013-10-02T09:54:53.860 に答える