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