public static void main(String[] args) {
// TODO code application logic here
JFrame frame = new JFrame();
SpringLayout layout = new SpringLayout();
frame.getContentPane().setLayout(layout);
TitledBorder border = null;
border = BorderFactory.createTitledBorder("Group1");
frame.setSize(620, 620);
JPanel mainPanel = new JPanel();
mainPanel.setBorder(border);
//mainPanel.setPreferredSize( new Dimension(600,600));
layout.putConstraint(SpringLayout.EAST, mainPanel, -15, SpringLayout.EAST, frame.getContentPane());
layout.putConstraint(SpringLayout.WEST, mainPanel, 15, SpringLayout.WEST, frame.getContentPane());
layout.putConstraint(SpringLayout.SOUTH, mainPanel, -15, SpringLayout.SOUTH, frame.getContentPane());
layout.putConstraint(SpringLayout.NORTH, mainPanel, 15, SpringLayout.NORTH, frame.getContentPane());
frame.getContentPane().add(mainPanel);
frame.setVisible(true);
}我正在用一个面板自动调整大小的效果,同时它的父面板在java1.4.2中调整了它的大小。我使用SpringLayout来做这件事,但是我发现如果我在西部和北部之后定义SpringLayout.East和SpringLayout.South,面板(mainPanel)将不会假设为(15,15)。如果将东部和北部定义在西部和南部之前,就可以了。为什么会这样呢?
发布于 2010-08-10 12:58:57
正如在本相关question中所指出的,约束规范的顺序可能很重要,特别是当所得到的布局是时。order WEST, NORTH, EAST, SOUTH是一个导致重置的示例,在相关bug report的“变通评估”一节中提到。
https://stackoverflow.com/questions/3445776
复制相似问题