Java - компоненты Gui не отображаются - PullRequest
1 голос
/ 29 марта 2012

У меня есть этот код для создания простого графического интерфейса (вручную), и я пытаюсь отобразить компоненты графического интерфейса на фрейме.Однако, когда я запускаю программу, отображается только рамка без отображения компонентов, таких как JTable.

Есть идеи, почему?

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Вы должны установить preferredSize() на JTables и затем сделать pack().

Редактировать:

Перемещено setVisible(true) после pack().Это порядок , который используется Sun / Oracle .

public class GUI extends JFrame {
    public void buildGui() {
        JFrame frame = new JFrame("Hotel TV Scheduler");

        Container contentPane = frame.getContentPane();

        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BorderLayout());

        JPanel listPanel = new JPanel();
        listPanel.setLayout(new FlowLayout());

        Dimension d = new Dimension(100, 100);

        JTable chOneTable = new JTable();
        chOneTable.setPreferredSize(d);

        JTable chTwoTable = new JTable();
        chTwoTable.setPreferredSize(d);

        JTable listTable = new JTable();
        listTable.setPreferredSize(d);

        listPanel.add(chOneTable);
        listPanel.add(chTwoTable);
        listPanel.add(listTable);

        contentPane.add(listPanel);

        frame.pack();
        frame.setVisible(true);
    }
}
2 голосов
/ 29 марта 2012
  1. Построить JFrame экземпляр
  2. Добавление компонентов в JFrame экземпляр
  3. Реализация экземпляра JFrame (т.е. setVisible(true))

Причина, по которой ни один из компонентов не отображается при показе экземпляра JFrame, заключается в том, что вы добавляете компоненты после того, как он реализован. Если вы хотите, чтобы компоненты отображались, выполните действия, описанные выше, или в конце метода buildGui повторно проверьте / перекрасите контейнер.

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