JTabbedPane JLabel,JTextField

时间:2011-04-24 23:18:08

标签: java swing jbutton jlabel jtextfield

是的,我有一个JTabbedPane,它有一个包含JLabel和JTextField的JPanel。

我的代码

JTabbed Pane声明:

        this.tabPane = new JTabbedPane();
    this.tabPane.setSize(750, 50);
    this.tabPane.setLocation(10, 10);
        tabPane.setSize(750,450);
    tabPane.add("ControlPanel",controlPanel);

文本字段声明:

    this.channelTxtFld = new JTextField("");
    this.channelTxtFld.setFont(this.indentedFont);
    this.channelTxtFld.setSize(200, 30);
    this.channelTxtFld.setLocation(200, 10);

JLabel:         this.channelLabel = new JLabel(“频道名称:”);         this.channelLabel.setSize(150,30);         this.channelLabel.setLocation(10,10);

private void createPanels() {
    controlPanel = new JPanel();
    controlPanel.setSize(650,500);
}
 private void fillPanels() {
    controlPanel.add(channelLabel);
    controlPanel.add(channelTxtFld);

}

所以我的计划是,有一个标签窗格,其中有一个JPanel,我在固定位置上有一些标签,文本字段和按钮,但是这样做后这是我的结果:

http://i.stack.imgur.com/vXa68.png

我想要的是我有JLabel,旁边是一个完整的JTextfield,左边不是中间。

任何人都知道我的错误是什么?

谢谢你:)

3 个答案:

答案 0 :(得分:3)

您使用哪种布局管理器作为您的controlPanel,您可能需要BorderLayout,将Label放在西方,将TextField放在中心。

顺便说一句,设置各种组件的大小和位置没有意义,除非你使用的是Null Layout,这不是一个好主意。所以我将删除所有这些内容,让布局管理器为您完成。

答案 1 :(得分:3)

使用LayoutManager并考虑方法setPreferredSize,setMinimumSize,setMaximumSize来根据您所需的效果调整组件边界。

答案 2 :(得分:3)

假设默认JPanel布局FlowLayout,请为JTextField提供非{0}的columns,并为JLabel提供{{1}约束。

附录:

  

完全成长JLabel.LEFT

这样的东西?

enter image description here

JTextField