如何设置组件的坐标?

时间:2012-02-26 12:39:46

标签: java swing jframe jpanel layout-manager

我是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%。或者可能存在我的问题的任何容器?谢谢

2 个答案:

答案 0 :(得分:5)

不要使用whatever#setBound(),请使用Standard LayoutManager,在这种情况下GridLayout(2, 0)最好的方法,JFrame及其JPanels将在两个方向调整大小

答案 1 :(得分:3)

如果您真的想要绝对定位,可以尝试禁用默认布局管理器,如Doing Without a Layout Manager所示。但是,大多数情况下(根据您的容器要显示的内容)最好选择合适的布局管理器。