我正在尝试学习如何使用JFrames。我有一个JFrame,有一个JPanel,有一个JButton。我将JButton添加到JPanel,后者又添加到JFrame。我的代码在下面,我不知道为什么这行不通。如果我没有正确设置布局没关系?我只是想弄清楚这一点,以帮助我使用布局解决更大的问题,我们将尽力提供帮助。谢谢
public class one {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(null);
f.setBounds(10, 10, 500, 500);
JPanel p = new JPanel();
p.setVisible(true);
p.setBackground(Color.BLACK);
JButton b = new JButton("Testing");
b.setBounds(60, 60, 100, 100);
b.setVisible(true);
p.add(b);
f.add(p);
f.setVisible(true);
}
}
运行该代码只会打开一个空白的JFrame。
答案 0 :(得分:1)
如果JPanel
包含所有Component
,则应将JPanel
的{{1}}设置为ContentPane
。
所以您需要更改此
JFrame
到
f.add(p);
如果f.setContentPane(p);
仅用于特定的JPanel
,则应为Component
设置边界并添加边界。
JPanel
的示例:
BorderLayout