java swing 如何控制组件的想要位置

图片说明
我做的这个是这样的 人家是这样的 我想弄人家那样的
图片说明
试了试弄不好 不会啊

      JPanel panel = new JPanel();      
      panel.add(你的文字对应的Label名);
      panel.add(你的文本框对应的Textfield名);
      panel.setAlignmentX(Component.LEFT_ALIGNMENT);   
      GridBagConstraints gbc = new GridBagConstraints();
      gbc.gridy = sliderPanel.getComponentCount();    //gridx/gridy:组件的横纵坐标
      gbc.anchor = GridBagConstraints.WEST;     
      //当组件不能填满其格时,通过 anchor来设置组件的位置,anchor有两种值,绝对和相对的值分别有 若干个
      你的能大panel.add(panel, gbc);    

这个是我做的滑动条的部分代码,你用的话要改。


可以采取空布局的方式控制具体的位置:
frame.setLayout(null);
frame.add(button1);
button1.setBounds(100,50,80,30);//修改控件位置和大小信息

你可以试试。

private JPanel getInfoPane() {

    JPanel infoPane = new JPanel();
    infoPane.setBorder(BorderFactory.createTitledBorder(""));
    infoPane.setLayout(new GridBagLayout());
    // row 1
    infoPane.add(nameLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(nameTextField, new GridBagConstraints(1, 0, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(codeLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(codeTextField, new GridBagConstraints(3, 0, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    // row 2
    infoPane.add(areaLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(areaComboBox, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(levelLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(levelComboBox, new GridBagConstraints(3, 1, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    // row 3
    infoPane.add(latitudeLabel, new GridBagConstraints(0, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(latitudeTextField, new GridBagConstraints(1, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(longitudeLabel, new GridBagConstraints(2, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(longitudeTextField, new GridBagConstraints(3, 2, 1, 1,
            0.0, 0.0, GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    if (alarmStart) {
        // row 4
        infoPane.add(radarTypeLabel, new GridBagConstraints(0, 3, 1, 1,
                0.0, 0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarTypeField, new GridBagConstraints(1, 3, 1, 1,
                0.0, 0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarProLabel, new GridBagConstraints(2, 3, 1, 1, 0.0,
                0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarProField, new GridBagConstraints(3, 3, 1, 1, 0.0,
                0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
    }
    return infoPane;
}
    定义相关的标签和文本框,运行后是这样的
    ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431933753_265790.png)

private JPanel getInfoPane() {

    JPanel infoPane = new JPanel();
    infoPane.setBorder(BorderFactory.createTitledBorder(""));
    infoPane.setLayout(new GridBagLayout());
    // row 1
    infoPane.add(nameLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(nameTextField, new GridBagConstraints(1, 0, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(codeLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(codeTextField, new GridBagConstraints(3, 0, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    // row 2
    infoPane.add(areaLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(areaComboBox, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(levelLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,
            GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(levelComboBox, new GridBagConstraints(3, 1, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    // row 3
    infoPane.add(latitudeLabel, new GridBagConstraints(0, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(latitudeTextField, new GridBagConstraints(1, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(longitudeLabel, new GridBagConstraints(2, 2, 1, 1, 0.0,
            0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
            GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    infoPane.add(longitudeTextField, new GridBagConstraints(3, 2, 1, 1,
            0.0, 0.0, GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS, 0, 0));
    if (alarmStart) {
        // row 4
        infoPane.add(radarTypeLabel, new GridBagConstraints(0, 3, 1, 1,
                0.0, 0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarTypeField, new GridBagConstraints(1, 3, 1, 1,
                0.0, 0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarProLabel, new GridBagConstraints(2, 3, 1, 1, 0.0,
                0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
        infoPane.add(radarProField, new GridBagConstraints(3, 3, 1, 1, 0.0,
                0.0, GridBagConstraints.CENTER,
                GridBagConstraints.HORIZONTAL, GuiUtil.DFLT_SPACE_INSETS,
                0, 0));
    }
    return infoPane;
}
    定义相关的标签和文本框,运行后是这样的
    ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431933753_265790.png)