2014-12-10 6 views
0

Я новичок в java swing и я креатинфосфата в Jlabel следующим образом:Как получить уникальный идентификатор Jlabel?

JLabel Lport = new JLabel ("Port: "); 
    final JTextField Tport = new JTextField ("1883", 10); 

то, что я хочу сделать, это получить имя метки в виде строки, потому что я хочу, чтобы использовать его в switch-case, так Мне нужно получить имя метки или уникальный идентификатор этого ярлыка, что-то вроде идентификатора, как оно есть в Android, я попробовал метод «, getAction.toString», «.getName», но ни один из них не отображал имя labe, который соответствует коду, указанному в «Port:». смотрите мои попытки ниже:

if ((isIPReady(Tip)) && (isPortReady(Tport))) { 
        Thread mqttThread = new Thread(MQTTRunnable, MQTT_THREAD); 
        mqttThread.start(); 
        System.out.println("Action: " + Tport.get); //here i do not know which method to use 
        setViewEnableState(Bconnect, true); 
       } 

ответ

0

Вы упоминаете вы хотите имя метки, но в вашем примере вы вызов Встаньте на текстовом поле.

Это относится как к текстовому полю, так и к метке в любом случае.

Этот конструктор устанавливает исходный текст, который будет отображаться в текстовом поле (или метке).

Если вы хотите установить имя, вы должны сначала установить его с помощью setName(), а затем использовать getName().

1

Имя JLabel отличается от текста, который он отображает. Чтобы получить текст из JLabel, используйте getText().

3

Короткий ответ заключается в использовании JLabel#getText, который вернет текст, который отображается JLabel.

Альтернативой может быть сохранение вашей собственной пары ключ-значение в разных случаях JComponent. Каждый JComponent позволяет put и retrieve свойствам клиента. Копия-паста из класса javadoc:

Поддержка специальных свойств компонента. С помощью методов getClientProperty (java.lang.Object, java.lang.Object) и методов getClientProperty (java.lang.Object) вы можете связать пары имен и объектов с любым объектом, который спускается с JComponent.

Это позволит вам написать:

private static final String ID_KEY = "MyUniqueIDKey"; 

JLabel label = new JLabel("Whatever"); 
label.putClientProperty(ID_KEY, "labelName"); 

, а позже на

String labelName = (String) label.getClientProperty(ID_KEY); 

Обратите внимание, что это работает с любым JComponent, в том числе JLabel и JTextField случаях, как те, которые вы используете в вашем коде.

Смежные вопросы