Обновление Jpanel класса - PullRequest
       15

Обновление Jpanel класса

1 голос
/ 30 марта 2010

После некоторых советов по использованию jpanel - я новичок в java и играю с элементами GUI.

В сущности, меня интересует, могу ли я установить Jpanel в одном классе, затем каким-то образом добавить метки и т. Д. В этот контейнер, но из другого класса.

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

Извинения На самом деле у меня нет кода, который можно было бы здесь продемонстрировать - я просто пытаюсь воплотить идею в жизнь, по возможности работаю, прежде чем идти дальше. И я даже не уверен, возможно ли это. Любой совет будет принята с благодарностью.

Спасибо

1 Ответ

3 голосов
/ 30 марта 2010

Пока у вас есть ссылка на JPanel, вы можете добавить любой GUI-элемент, который вы хотите, вызвав add(JComponent comp) на JPanel.

Итак, вы можете сделать что-то вроде этого:

class Panel extends JPanel{

    ...    

}

class Main{

    public Main(JPanel thePanel){
        thePanel.add(new JButton("Hello"));
    }
}

Это то, что вы искали?

Вы также можете обновить поля, добавленные на панель, из другого класса, если в этом классе настроен общедоступный метод доступа. Итак, в вашем panel классе у вас есть метод:

public JButton getButton(){
    return button;
}

Затем вы можете получить доступ к кнопке из любого класса со ссылкой на ваш класс панели, например:

panel.getButton().setText("Some text");

Обратите внимание, что кнопка также может быть общедоступной, тогда вы можете просто вызвать метод напрямую: panel.button.setText("Some text"); но это не считается хорошим кодом, поскольку он нарушает некоторые общие хорошие методы ООП, которые здесь не упоминаются. 1017 *

...