簡體   English   中英

創建JLabel數組

[英]Create JLabel Array

我有34個帶有圖像的標簽,當我生病時,我不知道如何制作標簽,請單擊標簽本身進行選擇,然后在右下角單擊“ Selected:”以對每個標簽選擇進行更改。

34個標簽

標簽變量名是從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.

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