我是Swing的新用户,我有按坐标绘制组件的问题。请看这段代码:
JFrame frame=new JFrame();
frame.setBounds(new Rectangle(0, 0, 700, 600));
frame.getContentPane().setBackground(Color.yellow);
frame.setVisible(true);
JPanel graph=new JPanel();
graph.setBounds(new Rectangle(0, 0, 700, 300));
graph.setBackground(Color.white);
graph.setOpaque(true);
frame.getContentPane().add(graph);
我需要JPanel从JFrame关闭50%,但现在它关闭100%,JFrame背景为白色。我该如何解决这个错误?另外,使用百分比设置宽度和高度是否有任何意义?例如,宽度为50%。或者可能存在我的问题的任何容器?谢谢
答案 0 :(得分:5)
不要使用whatever#setBound()
,请使用Standard LayoutManager,在这种情况下GridLayout(2, 0)最好的方法,JFrame及其JPanels将在两个方向调整大小
答案 1 :(得分:3)
如果您真的想要绝对定位,可以尝试禁用默认布局管理器,如Doing Without a Layout Manager所示。但是,大多数情况下(根据您的容器要显示的内容)最好选择合适的布局管理器。