是否可以将jpanel包含在另一个java文件的容器中?假设我有2个java文件fileA.java
和fileB.java
。我想在fileB.java
的容器中添加fileA.java
的整个显示内容。这可能吗?只是混乱运行很长一段时间。提前谢谢。
答案 0 :(得分:4)
您可以创建另一个文件/ cass 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;
}
}
答案 1 :(得分: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);