簡體   English   中英

如何在Java中創建一個JLabel數組以打印到JFrame

[英]How to create an array of JLabels in Java to be printed to a JFrame

我試圖制作一系列標簽。 每個標簽都有一個不同的值,它來自一個函數。 我不知道要使用的標簽的確切數量。 我的意思是可以打印任意數量的值。 請幫我這樣做。

容易只有一個方法返回一個數組或一些JLabel集合並將它們全部添加到您的JComponent(例如JPanel)

class MyPanel extends JPanel{

    public MyPanel(){
        super();
        showGUI();
    }

    private JLabel[] createLabels(){
        JLabel[] labels=new JLabel[10]
        for (int i=0;i<10;i++){
            labels[i]=new JLabel("message" + i);
        }
        return labels;
    }

    private void showGUI(){
        JLabel[] labels=createLabels();
        for (int i=0;i<labels.length();i++){
            this.add(labels[i]);
        }
    }
}

如果可能的話,不要使用單獨的JLabel ,而是使用JList ,如果需要,它將負責布局和滾動。

Java教程 - 如何使用List

替代文字
(來源: sun.com

你是開玩笑嗎? 好吧,如果你是認真的,首先看看一些Java API,比如JLabel,JPanel和一些語言元素。

然后你就可以做類似的事了(我確定我的代碼不會編譯)

public static JPanel getLabels(int count) {
    JPanel panel = new JPanel(new FlowLayout());
    for(int i =0; i<count; i++) {
        panel.add(new JLabel(theFunctionThatCannotBeNamedHere(i)));
    }
    return panel;
}

請注意, theFunctionThatCannotBeNamedHere是您談到的功能。

您實際上可以創建任何Swing組件的數組,因為每個Swing組件基本上都是復合數據類型。 嘗試這個:

javax.swing.JTextField[] array = new javax.swing.JTextField[number_of_elements];

暫無
暫無

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

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