Я добавляю JButton в свой подкласс класса JPanel, и если я изменяю текст или шрифт кнопки, объект Quiz исчезает, показывая только панель под ним , Однако, если я изменяю текст или шрифт перед добавлением кнопки, все работает нормально.JPanel исчезает при изменении добавляемого к нему текста JButton
setupGraphics() вызывается после того, как викторина добавляется к иерархии представлений
public void setupGraphics() {
this.setBackground(Color.red);
setLayout(null);
a.setBounds(20, 20, 200, 200);
add(a);
a.setText("Hi");
}
Если изменить код следующим образом:
public void setupGraphics() {
this.setBackground(Color.red);
setLayout(null);
a.setBounds(20, 20, 200, 200);
a.setText("Hi");
add(a);
}
затем он работает.
Любые идеи?
Используйте соответствующий [LayoutManager] (https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – copeg
Заказ не должен иметь значения, поскольку компоненты Swing достаточно умны, чтобы рисовать себя, когда свойство изменяется. Таким образом, проблема заключается в том, как вы вызываете этот метод. Отправьте надлежащий [SSCCE] (http://sscce.org/), который демонстрирует проблему. – camickr
Java GUI должны работать с разными ОС, размером экрана, разрешением экрана и т. Д., Используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –