Как получить доступ к элементам управления на JPanel ...? - PullRequest
0 голосов
/ 23 июля 2010

Я Java n0ob .... поэтому позвольте мне заранее извиниться ...

У меня есть jPanel, к которому я динамически добавлял набор элементов управления во время выполнения.время.Позже, в моем коде, я хочу просмотреть все эти элементы управления (они являются jCheckBoxes), чтобы увидеть, проверены ли они или нет.

В .NET - я бы посмотрел на некоторые как

Для каждого myControl как элемента управления в myPanel.Controls Далее

Есть ли способ сделать это с помощью jPanel?Разве я не должен использовать jPanel для этого?

Ответы [ 4 ]

1 голос
/ 23 июля 2010

Вы действительно должны хранить список этих элементов управления при их создании, чтобы вам не пришлось перебирать все компоненты в поисках флажков.Создайте ArrayList<JCheckBox> и добавьте флажки в этот массив по мере их создания.Затем у вас уже есть ссылки на них, и вы можете просто просмотреть массив, чтобы увидеть, проверены ли они.Нет необходимости просматривать все компоненты, добавленные на панель.

1 голос
/ 23 июля 2010

Простой ... используйте getComponents метод.

1 голос
/ 23 июля 2010

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

public static final void setJPanelFont(JPanel aPanel, Font font)
{
    Component c = null;
    Component[] components = aPanel.getComponents();

    aPanel.setFont(font);
    if(components != null)
    {
        int numComponents = components.length;
        for(int i = 0; i < numComponents; i++)
        {
            c = components[i];
            if(c != null)
            {
                if(c instanceof JPanel)
                {
                    setJPanelFont((JPanel)c,font);
                }
                else
                {
                    c.setFont(font);
                }
            }
        }
    }
}  
1 голос
/ 23 июля 2010

JPanel реализует Контейнер , просто используйте его API.

...