[英]Create JLabel Array
我有34個帶有圖像的標簽,當我生病時,我不知道如何制作標簽,請單擊標簽本身進行選擇,然后在右下角單擊“ Selected:”以對每個標簽選擇進行更改。
標簽變量名是從n1 to n34
我有此代碼,但在列表中getSelectedNumbers()
List<JLabel> lotteryBoxes = new ArrayList<>();
List<JLabel> getSelectedNumbers() {
List<JLabel> numbers = new ArrayList<>();
Iterator<JLabel> it = lotteryBoxes.iterator();
while (it.hasNext()) {
JLabel nr = it.next();
if (nr.isCursorSet()) {
numbers.add(nr);
Selected.setText("Selected: " + nr);
}
return numbers;
}
我不知道該怎么辦,請給我一些答案。
如果在循環中創建標簽,則可以向其添加處理程序。 檢查單擊哪個標簽的同一個處理程序,或者為每個標簽處理一個單獨的處理程序。
這里每個都有一個單獨的處理程序,標簽被放入一個數組中,以便您以后可以使用它們(在循環之外)。
int numberOfLabels = 34;
JLabel[] labels = new JLabel[numberOfLabels];
for (int index=0; index<numberOfLabels; index++) {
String labelText = "" + (index + 1);
final JLabel label = new JLabel(labelText));
final int labelNumber = index + 1;
label.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// do something, you can use "label" in here, eg:
selected.setText(label.getText());
// you have access to the number in "labelNumber"
}
});
somePanel.add(label);
labels[index] = label; // save the label if you need to access it later
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.