Компоненты Swing не будут отображаться при добавлении JTextField с использованием GridBagLayout - PullRequest
0 голосов
/ 27 февраля 2020

Я работаю над JPanel с компонентами JLabel, используя GridBagLayout. Когда я запускаю свою программу без JTextFields, она работает просто отлично. Однако, когда я пытаюсь добавить JTextField, все компоненты пропали без вести. Вот мой код:

    super("Scheduling Algorithm Simulator");
    setSize(new Dimension(500, 550));
    setResizable(false);
    setLocationRelativeTo(null);
    setVisible(true);

    JPanel pane = new JPanel(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    processLabel = new JLabel("Process", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 0;
    pane.add(processLabel, c);

    btLabel = new JLabel("Burst Time", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 1;
    c.gridy = 0;
    pane.add(btLabel, c);

    p1 = new JLabel("P1", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 1;
    pane.add(p1, c);

    p2 = new JLabel("P2", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 2;
    pane.add(p2, c);

    p3 = new JLabel("P3", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 3;
    pane.add(p3, c);

    p4 = new JLabel("P4", SwingConstants.CENTER);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 4;
    pane.add(p4, c);

Когда я добавляю следующие строки кода:

    bt1 = new JTextField();
    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 1;
    c.gridy = 1;
    pane.add(bt1, c);

Все компоненты внезапно пропали бы при запуске программы. Что не так с моим кодом? (Объект JPanel уже был добавлен в JFrame в моем коде)

1 Ответ

1 голос
/ 27 февраля 2020

Требуется вызов pack () для отображения всего.

...