是否可以将 jpanel 从另一个 java 文件包含到容器中?假设我有 2 个 java 文件fileA.java
和fileB.java
. 我想fileB.java
在fileA.java
. 这可能吗?只是一个混乱运行了很长时间。提前致谢。
问问题
598 次
2 回答
4
您可以制作其他文件/cass extends JPanel
,然后由于它是JPanel,您可以将其添加到任何其他文件中。例如:
文件A.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();
}
}
文件B.java
public class FileB extends JPanel {
public FileB() {
setLayout(new BorderLayout());
add(new JLabel("Example"), BorderLayout.CENTER);
}
}
或者您可以简单地将 JPanel 作为另一个文件中的字段并使用 getter 方法访问它。
例子:
文件C.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
class extends 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 回答