是的,我有一个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,左边不是中间。
任何人都知道我的错误是什么?
谢谢你:)答案 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
这样的东西?
JTextField