я застрял с проблемой, то есть, у меня есть JFrame с 2 JPanel, добавленными в него, как показано на рисунке: на рисунке выше, один JPanel есть JButtons и второй JPanel есть некоторые поля формы, я хочу изменить/(удалить старые и добавить новые JPanel), когда я нажимаю на JButtons в первом JPanel соответственно, как показано ниже: не может удалить/добавить JPanel в JFrame
у меня есть фрагмент кода:
myPanel.clickListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
MainFrame.this.getContentPane().remove(((BorderLayout)getLayout()).getLayoutComponent(BorderLayout.CENTER));
MainFrame.this.getContentPane().add(twoPanel, BorderLayout.CENTER);
MainFrame.this.invalidate();
MainFrame.this.validate();
}
});
myPanel.clickListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
MainFrame.this.getContentPane().remove(((BorderLayout)getLayout()).getLayoutComponent(BorderLayout.CENTER));
MainFrame.this.getContentPane().add(customerPanel, BorderLayout.CENTER);
MainFrame.this.invalidate();
MainFrame.this.validate();
}
});
MainFrame.this.setMaximumSize(new Dimension(600, 550));
MainFrame.this.setMinimumSize(new Dimension(599, 549));
MainFrame.this.setSize(600, 550);
MainFrame.this.setResizable(false);
MainFrame.this.setVisible(true);
}
});
через выше код я могу добавить новый JPanel, но не смог для удаления первого JPanel.
почему причинам есть недействительными() ;, использовать CardLayout вместо этого – mKorbel
согласен с @mKorbel. Используйте ['CardLayout'] (http://download.oracle.com/javase/8/docs/api/java/awt/CardLayout.html), как показано в [этом ответе] (http://stackoverflow.com/ а/5786005/418556). –
1) См. Также [Должен ли я избегать использования методов набора (Предпочтительный | Максимальный размер | Минимум) в Java Swing?] (Http://stackoverflow.com/q/7229226/418556) (Да.) 2) Пожалуйста, изучите общая номенклатура Java (соглашения об именах - например, 'EveryWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', если это не 'CONSTANT') и использовать ее последовательно. –