我想知道是否有一种方法可以为没有名称的 Jbutton 实现 Action 监听器。例如,我有以下 for 循环,为字母表中的每个字母创建一个按钮。
for (int i = 65; i < 91; i++){
alphabetPanel.add(new JButton("<html><center>" + (char)i));
}
有没有一种方法可以为每个按钮添加一个 Action 监听器,而无需摆脱 for 循环并对每个 JButton 进行硬编码,然后为每个按钮创建一个 Action 监听器?
提前致谢,
托梅克
最佳答案
你的问题有点模糊。修改循环以在循环内添加监听器将是微不足道的:
ActionListener listener = something;
for (int i = 65; i < 91; i++){
JButton button = new JButton("<html><center>" + (char)i);
button.addActionListener( listener );
alphabetPanel.add(button);
}
如果您无法修改循环,您可以迭代面板的所有子项,并向任何属于 jbutton 的子项添加监听器。
为什么要使用 html 来使文本居中?这不是太过分了吗? jbutton 不是已经居中文本了吗?
您也可以使用 setHorizontalAlignement(SwingConstants.CENTER) 来执行此操作。
关于用于无名 JButton 的 Java actionListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282539/