角落中的Dock对象 - MigLayout

时间:2015-12-17 15:35:39

标签: java swing layout-manager miglayout

如何将角落中的三个或更多组件对接,例如。东南使用MigLayout? 我尝试了什么:

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout;

public class App {

    public static void launchView(){
        JFrame frame = new JFrame("Foo");
        frame.setLayout(new MigLayout());
        JButton b1 = new JButton("Sample1");
        JButton b2 = new JButton("Sample2");
        JButton b3 = new JButton("Sample3");

        frame.add(b1, "dock south, east");
        frame.add(b2);
        frame.add(b3);
        frame.setSize(new Dimension(600, 200));
        frame.setVisible(true);

    }

    public static void main(String [] args){
       SwingUtilities.invokeLater(new Runnable() {
           public void run() {
               launchView();
           }
       });
   }
}

enter image description here

在图片中你可以看到错误顺序显示在左下角的按钮,但我希​​望它们总是在西南角,一个在另一个旁边(Button1 | Button2 | Button3)。

1 个答案:

答案 0 :(得分:0)

尝试使用SceneBuilder,这是一个可用于Eclipse和NetBeans的插件。您可以使用该工具轻松构建GUI。

自己的潜在解决方案是使用它:

 frame = new JFrame();
 frame.setBounds(100, 100, 450, 300);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.getContentPane().setLayout(new MigLayout("", "[grow,right]", "[grow,bottom]"));

 JButton btnNewButton = new JButton("New button");
 frame.getContentPane().add(btnNewButton, "flowx,cell 0 0");

 JButton btnNewButton_1 = new JButton("New button");
 frame.getContentPane().add(btnNewButton_1, "cell 0 0");

 JButton btnNewButton_2 = new JButton("New button");
 frame.getContentPane().add(btnNewButton_2, "cell 0 0");