簡體   English   中英

創建動態JLabel和JButton

[英]Creating dynamic JLabels and JButtons

我正在嘗試根據屬性文件中定義的URL數量創建動態JButtonJLabel

到目前為止,我嘗試過的是:

AppResources.properties file

urls=http://google.com,http://stackoverflow.com,http://gmail.com
urlLabels=Internet Users,MPLS Users,Physical Access (Not Advised)

在我的Java程序中,我正在讀取屬性文件,並基於comma separator分割字符串,現在我需要相應地生成按鈕和標簽。 就像第first URL Label --> first URL as Button ,依此類推。

到目前為止,我這樣做的方式是:

String url = properties.getProperty("urls");
        String urlLabel = properties.getProperty("urlLabels");
        String[] jButton = url.split(",");
        String[] jLabel = urlLabel.split(",");


        for (int i = 0; i < jLabel.length; i++) {
        JLabel labels = new JLabel(jLabel[i]);
        panel.add(labels);
        for (int j = 0; j < jButton.length; j++) {
            JButton button = new JButton(jButton[j]);
            panel.add(button);
        }
        }

但是它會為按鈕打印三次按鈕。 如何解決這個問題? 還有如何為這些按鈕編寫動作偵聽器?

刪除內部循環(基於j)。

如果要為按鈕實現動作偵聽器,則只需在創建按鈕時創建並添加新的ActionListener即可。

范例:

for (int i = 0; i < jLabel.length; i++) {
    final String str = jLabel[i];
    JLabel labels = new JLabel(str);
    panel.add(labels);
    JButton button = new JButton(jButton[i]);
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(panel, str);
        }
    });
    panel.add(button);
}

暫無
暫無

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

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