GroupLayout未提供所需结果

时间:2015-01-06 12:56:00

标签: java swing layout frame grouplayout

这里我添加了按钮,但我的框架上没有显示任何按钮 当我单独添加按钮时,它们相互重叠 我该怎么办 有人可以在我的代码中发现问题 我已被推荐到此网站:https://weblogs.java.net/blog/tpavek/archive/2006/02/getting_to_know_2.html

代码:     import java.awt。;     import javax.swing。;     import java.awt.event。;     import static javax.swing.GroupLayout.Alignment。;

class Abc extends JFrame
{
JButton b[];

Abc()
{
b=new JButton[5];
JPanel jp=new JPanel();
for(int i=0;i<b.length;i++)
{
b[i]=new JButton();
}
GroupLayout layout=new GroupLayout(jp);
jp.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);

layout.setHorizontalGroup(layout.createSequentialGroup()
.addComponent(b[0])
.addComponent(b[1])
.addComponent(b[2])
.addGroup(layout.createParallelGroup(LEADING)
        .addComponent(b[3])
        .addComponent(b[4]))
);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(b[0])
.addComponent(b[1])
.addComponent(b[2])
.addComponent(b[3]))
.addComponent(b[4])
);
setTitle("kuvh b");
setSize(1000,1000);
//for(int i=0;i<5;i++)
//{
add(b[0]);
add(b[2]);
pack();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    UIManager.setLookAndFeel(
                                  "javax.swing.plaf.metal.MetalLookAndFeel");
                                //  "com.sun.java.swing.plaf.motif.MotifLookAndFeel");
                                //UIManager.getCrossPlatformLookAndFeelClassName());
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
                new Abc().setVisible(true);
            }
        });
    }
}

代码导致以下内容,这不是我想要的。请告诉我这个问题的解决方案

1 个答案:

答案 0 :(得分:1)

如果您希望它出现在框架中,您必须将面板jp添加到框架中。你可以添加按钮0和2,但不能添加我能看到的面板。