Использование getComponent () в Swing для вызова переменной - PullRequest
2 голосов
/ 12 марта 2011

Хорошо, это может показаться странным вопросом, но есть ли способ, что после вызова чего-то вроде

jPanel3.getComponent(0).getName();

, что я могу использовать это значение для вызова переменной.В основном, если он возвращает, скажем, jLabel1.То, что я могу использовать это для вызова чего-то на этой метке, например .setText («Привет»);Вместо того, чтобы вводить jLabel1.setText ("привет").Значение, я могу использовать возвращенное значение, чтобы непосредственно вызвать функцию на нем.

Ответы [ 2 ]

1 голос
/ 12 марта 2011

Свойство name компонентов (т. Е. getName() и setName()) не имеет отношения к переменной, которую вы когда-то использовали при ее создании. Например, вы можете сделать это (но не делайте этого, поскольку это очень запутанно):

Component textField1 = new JLabel("text");
textField1.setName("comboBox1");
System.out.println(textField1.getName()); // comboBox1

Невозможно вернуться к вашему textField1 имени - эта переменная может даже не существовать, когда вы вызываете метод getName(). Вы даже можете создавать (и использовать) компоненты, даже не используя для них явную переменную, например:

panel.add(new JLabel("text"));

Как пишет Джон, вы можете привести компонент к реальному типу, и вам не нужно имя исходной переменной.

1 голос
/ 12 марта 2011

Если я правильно понял вопрос, вы хотите что-то вроде этого:

Component c=jPanel3.getComponent(0);
if (c instanceof JLabel)
    ((JLabel)c).setText("hi");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...