Как передать сообщение между несколькими JPanels? - PullRequest
1 голос
/ 13 января 2012

У меня есть JFrame, содержащий три JPanel.Первый JPanel содержит JTextField и JButton.Как только JButton нажата, JLabel на втором JPanel может показать ввод текста из JTextField.И затем третий JPanel изменит свой фон в соответствии с JLabel на втором JPanel.

Мой вопрос: как получить доступ к содержимому JTextField на первом JPanel и затем перенести его на другие два JPanel?

Ответы [ 4 ]

3 голосов
/ 13 января 2012

Вы можете создать

пожалуйста, внимательно прочитайте все комментарии @Hovercraft Full Of Eels к обоим вариантам

1 голос
/ 13 января 2012

Итак, у вас есть три панели:

JPanel panel1;
JTextField textFieldOnFirstPanel;
JButton buttonOnFirstPanel;
JLabel labelOnSecondPanel;
JPanel panel2;
JPanel panel3;

Сохраните ссылку на все эти три панели и все компоненты в вашем главном объекте, это может быть сам объект JFrame. В зависимости от событий обновите эти компоненты соответствующим образом.

0 голосов
/ 13 января 2012

Я думаю, что самый чистый способ достичь вашей цели - получить доступ к получателю текста поля после получения уведомлений об изменениях, которые разрешены классическим шаблоном Observer / Observable. Вы можете иметь здесь для деталей об этом шаблоне. http://en.wikipedia.org/wiki/Observer_pattern Мои 2 штуки Джером

0 голосов
/ 13 января 2012

Сначала вы сохраните данные из первого текстового поля в переменной.Вы можете сделать это в методе actionPerformed при нажатии кнопки.

После этого вы используете функцию setText для изменения текста JLabel.

И, наконец, вы меняете цвет JPanelвызывая метод setBackground.

String text = textField.getText();
label.setText(text);
myJPanel.setBackground(Color.white);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...