【发布时间】:2013-11-19 13:02:02
【问题描述】:
这样,
如何在框架的东边设置两个面板并保持面板一和二的固定尺寸?
如何设置帧的图像BG?
【问题讨论】:
标签: java swing layout jframe jpanel
这样,
如何在框架的东边设置两个面板并保持面板一和二的固定尺寸?
如何设置帧的图像BG?
【问题讨论】:
标签: java swing layout jframe jpanel
通过嵌套布局。在您的BoarderLayout 的EAST 上添加BoxLayout。请参阅 Andrew Thompson 回复this question。
【讨论】:
如果您不介意手动修改,您可以使用 SpringLayout 手动控制布局。使用这种方法,我根据您的图片制作了一个小模型。看看它是否有帮助。如果你也使用注释掉的行(替换它上面的行)它应该保持大小相同
public class SO{
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
panel1.setBackground(java.awt.Color.RED);
JPanel panel2 = new JPanel();
JButton but1 = new JButton("Button 1");
JButton but2 = new JButton("Button 2");
panel2.setBackground(java.awt.Color.BLUE);
panel2.add(but1);
panel2.add(but2);
SpringLayout layout = new SpringLayout();
frame.setLayout(layout);
frame.add(panel1);
layout.putConstraint(SpringLayout.EAST, panel1, -5, SpringLayout.EAST, frame.getContentPane());
layout.putConstraint(SpringLayout.WEST, panel1, -200, SpringLayout.EAST, frame.getContentPane());
layout.putConstraint(SpringLayout.NORTH, panel1, 5, SpringLayout.NORTH, frame.getContentPane());
layout.putConstraint(SpringLayout.SOUTH, panel1, -5, SpringLayout.NORTH, panel2);
//layout.putConstraint(SpringLayout.SOUTH, panel1, 200, SpringLayout.NORTH, frame.getContentPane()); swap this for the above one to keep the sizes the same
frame.add(panel2);
layout.putConstraint(SpringLayout.EAST, panel2, -5, SpringLayout.EAST, frame.getContentPane());
layout.putConstraint(SpringLayout.WEST, panel2, -200, SpringLayout.EAST, frame.getContentPane());
layout.putConstraint(SpringLayout.NORTH, panel2, -100, SpringLayout.SOUTH, frame.getContentPane());
layout.putConstraint(SpringLayout.SOUTH, panel2, -5, SpringLayout.SOUTH, frame.getContentPane());
frame.setSize(400, 350);
frame.setVisible(true);
}
}
祝你好运!
【讨论】:
你要做的是:
【讨论】: