如何将带有标签的多个面板添加到单个框架中?

时间:2015-03-28 20:09:47

标签: java swing jpanel layout-manager border-layout

我正在学习Java Swings,我正在创建一个框架,我想在其中添加多个具有不同方向的面板,如下面的代码jpanet_1jpanel_2中所示它们具有使用setBound()方法设置的特定尺寸。

问题出在运行时,“hello world”仅出现在第二个面板中,而不出现在第一个面板中。我试图按以下步骤切换我将两个面板添加到主框架的顺序:

    jFrame_2.add(jPanel_2);
    jFrame_2.add(jPanel_1);

但是,“hello world”仅添加到panel_2。

  1. 请告诉我如何将两个面板添加到框架中,以便在“

  2. 中显示”hello world“语句
  3. 正如您在代码中看到的那样,我想为每个面板指定尺寸我希望添加到框架中,然后我添加它,是否还有其他推荐的方法将面板添加到框架中?

  4. pic

    CODE:

      public class GUI_01 {
    
    JFrame jFrame_1;
    JFrame jFrame_2;
    JPanel jPanel_1;
    JPanel jPanel_2;
    final JLabel jLabel_Hello = new JLabel("Hello World");
    JOptionPane jOptions;
    final String[] options = {"yes", "no", "maybe"};
    
    public GUI_01() {
        // TODO Auto-generated constructor stub
        setUpGUI1();
        setUpGUI2();
    }
    
    private void setUpGUI2() {
        // TODO Auto-generated method stub
        jFrame_2 = new JFrame("Border Demo");
        jPanel_1 = new JPanel();
        jPanel_2 = new JPanel();
    
        jPanel_1.setBorder(BorderFactory.createTitledBorder("title"));
        jPanel_1.setBounds(30, 100, 110, 300);
        jPanel_1.add(jLabel_Hello);
    
        jPanel_2.setBorder(BorderFactory.createLoweredBevelBorder());
        jPanel_2.setBounds(20, 50, 120, 80);
        jPanel_2.add(jLabel_Hello);
    
        jFrame_2.setBounds(0, 0, 600, 600);
        jFrame_2.add(jPanel_1);
        jFrame_2.add(jPanel_2);
        jFrame_2.setVisible(true);
    }
    

2 个答案:

答案 0 :(得分:2)

  

问题是在运行时,“hello world”仅出现在第二个面板中,并且不会出现在

这是正确的。组件只能有一个父组件。

如果你想要文本“Hello World”,那么你需要创建两个JLabel并为每个面板添加一个标签。

JLabel label1 = new JLabel("Hello World");
JPanel panel1 = new JPanel();
panel1.add( label1 );
JLabel label2 = new JLabel("Hello World");
JPanel panel2 = new JPanel();
panel2.add( label2 );
  

我尝试使用gridlayout但是我无法将jpanel放在gridlayout的特定单元格中。

您不能只将组件添加到随机单元格中。您必须在每个单元格中都有组件,或者在GridBagLayout的情况下,组件可以跨越多个单元格。

答案 1 :(得分:1)

您想要使用布局。就个人而言,我最喜欢的布局是GridBagLayout,它允许您准确选择事物的去向(如表中的自定义行和列)。您可以了解有关它的更多信息here。希望这会有所帮助,祝你好运。