在java中使用方框布局

在java中使用方框布局,java,swing,layout-manager,boxlayout,Java,Swing,Layout Manager,Boxlayout,下面的代码很方便地创建了一个方框布局,但我遇到的问题是文本字段占据了整行。它应该测量指定它的参数长度 public void makeControlpanel(){ JPanel controlpanel = new JPanel(); //SET PANEL LAYOUT MANAGERS controlpanel.setLayout(new BoxLayout(controlpanel,BoxLayout.PAGE_AXIS)); controlpane

下面的代码很方便地创建了一个方框布局,但我遇到的问题是文本字段占据了整行。它应该测量指定它的参数长度

 public void makeControlpanel(){
    JPanel controlpanel = new JPanel();
     //SET PANEL LAYOUT MANAGERS
    controlpanel.setLayout(new BoxLayout(controlpanel,BoxLayout.PAGE_AXIS));

    controlpanel.setBorder(BorderFactory.createTitledBorder("Create Control file")); 


    filenameC   = new JLabel("Filename");
    filenameBad   = new JLabel("Bad Filename");
    filenameDis = new JLabel("Discard Filename");

    // fields
    fileField = new JTextField(1);
    badfileField = new JTextField(7);
    discardfileField = new JTextField(7);

布局管理器决定组件的大小。您可以使用以下选项定义布局管理器的组件边界:

comp.setMinimumSize(new Dimension(w, h));
comp.setPreferredSize(new Dimension(w, h));
comp.setMaximumSize(new Dimension(w, h));
当您给出
setPreferredSize
时,布局管理器将尝试给出该大小。GridBagLayout是msot灵活的布局,您可以预先获得所需的任何布局


参数
length
by defention仅定义可以在文本字段中输入的字符。

您读过以下内容吗:?通常,LayoutManager有权覆盖组件大小等属性。可以使用允许进行所需微调的LayoutManager,也可以使用子类JTextField返回maxSize。建议使用前者,无论如何,您都需要一个功能更强大的LayoutManager。否-永远不要使用任何setXXSize方法,原因请参见),而应使用合适的LayoutManager。@Kleopatra,您建议使用什么布局,因为我想将面板中的组件按不同的行排列lenghts@lee我个人目前最喜欢的是MigLayout(顺便说一句:符号和名称之间的空格阻止我收到你的评论:-)@Kleopatra一个人应该知道这些方法的存在以及它的作用,这样他才能决定是否使用它。@Lee Try
GridBagLayout
。不,最好忘记(或者新手永远学不到)这些方法是存在的——应用它们会带来无尽的痛苦。。