当我将另一个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);
}
答案 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布局,因为如果调整窗口大小,它会破坏外观。