2015-12-12 31 views
0

所以我有编号的JLabel宣布像这样(在课堂上) OP_1 OP_2 OP_3 等。我需要根据到JLabel引用过的字符串

而且我有一个号码和一个串。

我想要的是,例如,当数字是2.我想将标签文本更改为字符串的内容。这是应该接受一个字符串的方法的一部分,将其放入最后一个可用的JLabel中,然后递增该数字。

我很困惑,帮助将不胜感激。

+0

如何比较或转换数字到JLabel。但是,您可以比较每个JLabel的文本以匹配数字。如果发现匹配,则获取对JLabel的引用,然后使用字符串的内容更改文本。 –

+0

不转换任何东西。我正在将Label的文本更改为字符串中的内容。这是标签的名称,需要用数字找到。 – Ampera

+0

是的,你正在试图比较一个数字与JLabel的文字,即。无论如何,你需要对匹配的JLabel的引用。为此,您需要比较所有JLabel文本的文本。没有其他办法可以解决你的问题。 –

回答

0

在这里,我创建的JLabel的阵列和方法,updateNextLabel后来访问(字符串),这将你用你为str输入的任何内容更新下一个JLabel。

public class Example { 
    static int count = 0; //Create a count 
    static JLabel[] array = new JLabel[3]; //Create an array to hold all three JLabels 

    public static void main(String[] args) { 
     //Set the default text for each JLabel 
     array[0] = new JLabel("This is OP1"); 
     array[1] = new JLabel("This is OP2"); 
     array[2] = new JLabel("This is OP3"); 
     //Here is an example if you wanted to use a for-loop to update the JLabels 
     for (int x = 0; x < array.length; x++) { 
      updateNextLabel("This is the new text for OP" + (count + 1)); 
      System.out.println(array[x].getText()); 
     } 
    } 

    public static void updateNextLabel(String str) { 
     array[count].setText(str); 
     count++; 
    } 
} 
0

而是由具体的名字命名的标签/附加您以后可以匹配他们,我倒是觉得JLabelMap A S与String S或Integer S作为密钥可能是一个更好的方法:

Map<String,JLabel> labelMap = new HashMap<String,JLabel>(); 
labelMap.put("1", OP_1); 
labelMap.put("2", OP_2); 

这将使“为重点2标签”以及“列出我所有的标签,并找到一个文本2”以及

相关问题