У меня есть графический интерфейс, основанный на Swing JPanel, который использует BorderLayout. На северной панели я добавил новую JPanel, которая использует FlowLayout и содержит два текстовых поля и другие компоненты. Когда я изменяю текст textField и делаю невидимыми некоторые компоненты внутри этой панели, это textField продолжает изменять размер. Как я могу этого избежать? Я хотел бы, чтобы textField сохранял тот же размер, что бы ни происходило. Я пробовал setSize, setPreferredSize, setMinimumSize безуспешно.
txtSource = new WebTextField(source);
txtSource.setMaximumSize(new Dimension(30,20));
txtSource.setMinimumSize(new Dimension(20, 20));
txtSource.setEditable(false);
txtDestination = new WebTextField(destination);
txtDestination.setMaximumSize(new Dimension(30,20));
txtDestination.setMinimumSize(new Dimension(20, 20));
до:
после:
BoxLayout.Y-AXIS
для своей большой панели, а в верхней части поместить другую панель с нулевым макетом и использоватьsetBounds(int x, int y, int width, int height)
, и размер текстовых полей не должен изменяться. Затем добавьте еще одну панель с нужным макетом. - person Ungeheuer   schedule 11.06.2015