框架中的自定义布局

时间:2014-04-29 21:59:28

标签: java swing layout layout-manager null-layout-manager

当我将另一个JPanel添加到jframe中之前将消失(或者可能与前一个重叠)。我怎么能阻止这种重叠?

public Attack() {
    JFrame frame = new JFrame("Oracle Padding Attack");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    panel1.setLayout(null);
    JLabel label1 = new JLabel("Inicialization vector:");
    createTextField(10, 40, arrayIV, panel1, "HH", true, false);
    label1.setBounds(10, 0, 120, 50);
    panel1.add(label1);

    panel2.setLayout(null);
    JLabel label2 = new JLabel("Encrypted text:");
    createTextField(400, 40, encryptedTextArray, panel2, "00", true, false);
    label2.setBounds(400, 0, 120, 50);
    panel2.add(label2);

    frame.add(panel1);
    frame.add(panel2);
    frame.setSize(900, 400);
    frame.setVisible(true);
}

1 个答案:

答案 0 :(得分:3)

这取决于您希望将两个面板放置在框架内的方式。您需要一个框架布局。 如果你想能够跳跃"从一个到另一个,cardLayout就是你的答案。

否则,如果你想要两边并排,你必须在你的框架内使用一个布局。我喜欢MigLayout,但GridLayout可以很好地完成工作。

http://docs.oracle.com/javase/tutorial/uiswing/layout/grid.html

可以在此处找到所有内置布局处理程序:http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

此外,建议不要使用null布局,因为如果调整窗口大小,它会破坏外观。