2

別のJavaファイルからコンテナにjpanelを含めることは可能ですか?2つのJavaファイルfileA.javaと。があるとしfileB.javaます。fileB.javaそして、コンテナ内の表示コンテンツ全体をに追加したいと思いfileA.javaます。これは可能ですか?非常に長い間、混乱が生じています。前もって感謝します。

4

2 に答える 2

4

他のファイル/ケースを作成してextends JPanel、それJPanelであるため、他のファイルに追加することができます。例えば:

FileA.java

public class FileA {
    public FileA() { 
        JFrame jf = new JFrame();
        jf.setLayout(new BorderLayout());

        FileB b = new FileB();

        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setBounds(100,100,800,600);
        jf.setVisible(true);

        add(b, BorderLayout.CENTER);
    }
    public static void main(String[] args) {
        new FileA();
    }
}

FileB.java

public class FileB extends JPanel {
    public FileB() { 
        setLayout(new BorderLayout());
        add(new JLabel("Example"), BorderLayout.CENTER);
    }
}

または、JPanelを別のファイルのフィールドにして、getterメソッドでアクセスすることもできます。

例:

FileC.java

public class FileC {

    private JPanel panel;

    public FileC() {
        panel = new JPanel();
        panel.add(new JLabel("Example 2"));
    }

    public JPanel getPanel() {
        return panel;
    }

}
于 2012-07-16T20:52:16.920 に答える
3

はい、できます。

1-fileBクラスが拡張されJPanelている場合は、のインスタンスを作成し、fileBそれを任意のコンテナに追加します。

fileB panel = new fileB();
container.add(panel);

2-fileBフィールドとしてJPanelがある場合、パブリックフィールドの場合はそれ自体で、それ以外の場合はgetterメソッドでアクセスする必要があります。

fileB f = new fileB();
JPanel panel = f.getPanel(); // or f.panel if the panel is a public field
container.add(panel);
于 2012-07-16T20:48:00.103 に答える