0

当我将另一个 JPanel 添加到前一帧中时,将会消失(或者可能与前一个重叠)。我怎样才能停止这种重叠?

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);
}
4

1 回答 1

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 布局,因为如果调整窗口大小,它会破坏外观。

于 2014-04-29T22:08:01.097 回答