1

プロパティ ファイルで定義されている URL の数に基づいて動的に作成しようとしてJButtonいます。JLabel

私がこれまでに試したことは次のとおりです。

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);
        }
        }

ただし、ラベルのボタンを 3 回印刷します。これを修正する方法は?また、これらのボタンのアクション リスナーを作成する方法は?

4

2 に答える 2

3

内側のループを削除します (j ベース)。

于 2012-09-11T10:28:53.880 に答える
3

ボタンにアクション リスナーを実装する場合は、ボタンの作成中に新しい 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);
}
于 2012-09-11T10:54:11.410 に答える