2014-09-05 74 views
0

我正在尝试为独立应用程序创建清晰的Java UI布局。我知道JSwing不是最好的用户界面,但这是我现在所拥有的。Java UI布局问题

我的UI目前的样子: enter image description here

我想要的文字一字排开,按键一字排开,并在所有他们的提交和状态,堆叠或相互平行。

我的布局是目前这样的:

 GroupLayout layout = new GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setAutoCreateGaps(true); 
    layout.setAutoCreateContainerGaps(true); 

    layout.setHorizontalGroup(layout.createSequentialGroup() 
     .addComponent(lbl_inputFile) 
     .addComponent(txt_inputFile) 
     .addComponent(btn_inputFile) 
     .addGroup(layout.createSequentialGroup() 
       .addComponent(lbl_searchTermFile) 
       .addComponent(txt_searchTermFile) 
       .addComponent(btn_searchTermFile)) 
     .addGroup(layout.createSequentialGroup() 
       .addComponent(lbl_outputFile) 
       .addComponent(txt_outputFile) 
       .addComponent(btn_outputFile)) 
     .addGroup(layout.createSequentialGroup() 
     .addComponent(btn_sumbit) 
     .addComponent(lbl_status)) 
    ); 

    layout.linkSize(SwingConstants.HORIZONTAL, btn_inputFile, btn_outputFile, btn_searchTermFile); 

    layout.setVerticalGroup(layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
        .addComponent(lbl_inputFile) 
        .addComponent(txt_inputFile) 
        .addComponent(btn_inputFile)) 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
        .addComponent(lbl_searchTermFile) 
        .addComponent(txt_searchTermFile) 
        .addComponent(btn_searchTermFile)) 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
        .addComponent(lbl_outputFile) 
        .addComponent(txt_outputFile) 
        .addComponent(btn_outputFile)) 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
        .addComponent(btn_sumbit) 
        .addComponent(lbl_status)) 
    ); 

任何想法如何实现我想要什么?

+1

打开看看的甲骨文教程](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – csmckelvey 2014-09-05 18:15:30

回答

5

您可以使用 的MigLayout布局管理器从此站点,您可以下载用于Swing的jar文件miglayout-4.0-swing.jar,使其在您的项目类路径中可用。 要给大家介绍的布局管理器是如何工作的想法,下面是快速启动

JPanel panel = new JPanel(new MigLayout()); 
panel.add(firstNameLabel); 
panel.add(firstNameTextField); 
panel.add(lastNameLabel,"gap unrelated"); 
panel.add(lastNameTextField,"wrap"); 
panel.add(addressLabel); 
panel.add(addressTextField,"span, grow"); 

上面代码中如果使用的是Eclipse,则U可以使用的WindowBuilder插件产生以下面板 enter image description here 源代码Google(http://www.eclipse.org/windowbuilder/download.php)。它的GUI表单设计器也支持Swing,特别是它包含支持MigLayout布局管理器的构建。 以下是的WindowBuilder的屏幕截图在Eclipse enter image description here

+0

谢谢,WindowBuilder一直很棒! – staples 2014-09-10 20:34:49