Как добавить новый компонент на панель во время выполнения - PullRequest
0 голосов
/ 20 февраля 2010

Я хочу добавить JCombobox на панель во время выполнения, я понятия не имею об этом, поэтому, пожалуйста, если у вас есть идеи, предложите мне.

1 Ответ

1 голос
/ 20 февраля 2010

Я предполагаю, что вы хотите добавить поле со списком к компоненту, который уже находится на экране. Просто добавьте компонент в соответствующий Контейнер и вызовите Контейнер validate . Вот небольшой пример для этого:

import java.awt.Dimension;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Application {

    private static final String[] choices = { "One", "Two", "Three" };

    /**
     * @param args
     */
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        final JPanel content = new JPanel();
        content.setPreferredSize(new Dimension(50, 200));
        content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
        JButton addButton = new JButton(new AbstractAction("Add Combobox") {

            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent arg0) {
                content.add(new JComboBox(choices));
                content.validate();
            }
        });

        frame.add(content);
        content.add(addButton);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Хотя я использовал фрейм только для этого примера, он также должен работать для JPanel .

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