在 MainFrame 中移动两个 JPanel,当这些 JPanel 具有绝对布局时
Move two JPanel inside of a MainFrame, when those JPanels have an Absolut Layout
我在 MainFrame 中添加了两个 JPanel。我遇到的问题是一帧出现在另一帧之上。我怎样才能固定尺寸,以便将其中一个面板向下移动。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
Panel1 panel1= new Panel1();
Panel2 panel2= new Panel2();
frame.getContentPane().add(panel1.contentPanel);
frame.getContentPane().add(panel2.contentPanel);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
复杂的是我拥有的两个 JPanel:
Panel1.java
contentPanel.setLayout(null);
Panel2.java
contentPanel.setLayout(null);
我不想在大型机中使用 GridBagLayout,因为我想使用绝对布局来实现。
我想将 Panel2 向下移动,所以 Panel1 出现在 Panel2 的顶部。
您正在将两个面板添加到同一位置,因为它们 overlapping.You 可以使用边框布局来设置它们,而不是空布局。请参阅示例。我已经添加了两个面板,但一个在页面开始,另一个在页面结束。
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JButton b1 = new JButton("b1");
JButton b2 = new JButton("b2");
panel1.add(b1);
panel2.add(b2);
JFrame frame = new JFrame();
frame.getContentPane().add(panel2, BorderLayout.PAGE_END);
frame.getContentPane().add(panel1, BorderLayout.PAGE_START);
frame.pack();
frame.setVisible(true);
我在 MainFrame 中添加了两个 JPanel。我遇到的问题是一帧出现在另一帧之上。我怎样才能固定尺寸,以便将其中一个面板向下移动。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
Panel1 panel1= new Panel1();
Panel2 panel2= new Panel2();
frame.getContentPane().add(panel1.contentPanel);
frame.getContentPane().add(panel2.contentPanel);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
复杂的是我拥有的两个 JPanel:
Panel1.java
contentPanel.setLayout(null);
Panel2.java
contentPanel.setLayout(null);
我不想在大型机中使用 GridBagLayout,因为我想使用绝对布局来实现。
我想将 Panel2 向下移动,所以 Panel1 出现在 Panel2 的顶部。
您正在将两个面板添加到同一位置,因为它们 overlapping.You 可以使用边框布局来设置它们,而不是空布局。请参阅示例。我已经添加了两个面板,但一个在页面开始,另一个在页面结束。
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JButton b1 = new JButton("b1");
JButton b2 = new JButton("b2");
panel1.add(b1);
panel2.add(b2);
JFrame frame = new JFrame();
frame.getContentPane().add(panel2, BorderLayout.PAGE_END);
frame.getContentPane().add(panel1, BorderLayout.PAGE_START);
frame.pack();
frame.setVisible(true);