簡體   English   中英

如何使用for循環遞增創建的jlabels的變量名?

[英]How to increment the variable names created jlabels using for loop?

Java代碼:

for (int i = 0; i < 10;++i) {
   if (i == 9){
     lbl_ichar.setText(String.valueOf(word.charAt(i)));
   }
}

此代碼在單詞lbl_ichar下顯示錯誤消息(編譯時錯誤:找不到符號符號:變量類lbl_ichar)。但是我已經創建了變量名稱為lbl_0charlbl_1charlbl_2char ......的lbl_2char ......直到lbl_9char

我想用名稱lbl_ichar而不是lbl_icharlbl_9char 。在Java中可以嗎? 如果是這樣,如何編碼呢?

看來您正在嘗試在運行時動態創建變量名:

JLabel lbl_1char = new JLabel();
JLabel lbl_2char = new JLabel();
// ...

for (int i = 0; i < 10; ++i) {
   lbl_ichar.setText(String.valueOf(word.charAt(i)));
   //  ^
}

這是行不通的。 您不能在運行時創建變量名稱。 改用數組:

JLabel[] lbl_char = new JLabel[10];
lbl_char[0] = new JLabel();
lbl_char[1] = new JLabel();
// ...

for (int i = 0; i < lbl_char.length; i++) {
   lbl_char[i].setText(String.valueOf(word.charAt(i)));
}

或者,甚至更好的是,不使用原始數組,而使用ArrayList

List<JLabel> lbl_char = new ArrayList<>();
lbl_char.add(new JLabel());
lbl_char.add(new JLabel());
// ...

for (JLabel lbl : lbl_char) {
   lbl.setText("Whatever");
}

嘗試做同樣的事情,

JLabel lb_char [] =新的JLable [10];

然后進入Loop之后,您可以像這樣引用這些標簽,

for (int i = 0; i < 10;++i) {

     lbl_char[i].setText(String.valueOf(word.charAt(i)));
} 

您不能直接使用“ lbl_ichar”之類的循環變量i值。

您只想在i值為9時更改該值,還是要為“ lbl_9char”設置新值?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM