JTabbedPane JLabel,JTextField

| 正确,我有一个JTabbedPane,它的JPanel包含一个JLabel和一个JTextField。 我的密码 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的选项卡式窗格,其中的固定位置上有一些Label,文本字段和按钮,但是这样做之后,我的结果是: http://i.stack.imgur.com/vXa68.png 我想要的是我有JLabel,旁边是一个完整的JTextfield,位于左侧而不是中间。 有人知道我的错误是什么吗? 谢谢 :)     
已邀请:
您为您的controlPanel使用哪种布局管理器,您可能需要BorderLayout,将Label放在西方,将TextField放在中心。 顺便说一句,除非您使用的是“ Null布局”,否则设置各种组件的大小和位置没有任何意义,这不是一个好主意。因此,我将删除所有这些内容,然后让布局管理器为您完成。     
使用LayoutManager并同时考虑setPreferredSize,setMinimumSize,setMaximumSize方法,以根据所需效果调整组件边界。     
假设默认的
JPanel
布局
FlowLayout
,给
JTextField
一个非零值
columns
,并给
JLabel
一个
JLabel.LEFT
约束。 附录:   满长的
JTextField
像这样吗
import java.awt.*;
import javax.swing.*;

/**
 * @see http://stackoverflow.com/questions/5773874
 */
public class JTabbedText {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            private final JTabbedPane jtp = new JTabbedPane();

            @Override
            public void run() {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                jtp.setPreferredSize(new Dimension(400, 200));
                jtp.addTab(\"Control\", new MyPanel(\"Channel\"));

                f.add(jtp, BorderLayout.CENTER);
                f.pack();
                f.setVisible(true);
            }
        });
    }

    private static class MyPanel extends JPanel {

        private final JLabel label = new JLabel(\"\", JLabel.LEFT);
        private final JTextField text = new JTextField();

        public MyPanel(String name) {
            this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
            label.setText(name);
            label.setAlignmentY(JLabel.TOP_ALIGNMENT);
            text.setAlignmentY(JTextField.TOP_ALIGNMENT);
            this.add(label);
            this.add(text);
        }
    }
}
    

要回复问题请先登录注册