Проблема с SpringLayout в Java 1.4.2 - PullRequest
2 голосов
/ 10 августа 2010
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);
}

Я работаю над эффектом с автоматическим изменением размера панели вместе со своими родителями, в то время как его родитель изменяет размеры в java 1.4.2.Я использовал SpringLayout для этого, но обнаружил, что если я определю SpringLayout.East и SpringLayout.South после WEST и NORTH, панель (mainPanel) не будет позиционироваться в (15,15).Это будет делать, если восток и север определены перед западом и югом.Почему это так?

1 Ответ

2 голосов
/ 10 августа 2010

Как отмечено в этом связанном вопросе , порядок спецификации ограничения может быть важен, особенно если результирующая компоновка имеет слишком большое ограничение 1005 * Порядок WEST, NORTH, EAST, SOUTH является примером, который вызывает сброс , упомянутый в разделе «Оценка обходного пути» соответствующего отчета об ошибке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...