用于无名 JButton 的 Java actionListener?

标签 java swing jbutton actionlistener

我想知道是否有一种方法可以为没有名称的 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 不是已经居中文本了吗?
您也可以使用 setHorizo​​ntalAlignement(SwingConstants.CENTER) 来执行此操作。

关于用于无名 JButton 的 Java actionListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282539/

相关文章:

java - 仅当按下按钮时才在 JTable 中保存单元格更改,如果不像以前那样保留

java - JButton 忽略指示的大小

java - 矩形颜色选择器程序

java - 如何删除 GUI 中的选择框?

java - Java 8 收集器问题类型不匹配 : cannot convert from List<Object> to List<String>

java - 如何测试索引越界错误?

java - 使用 JavaFX 或 Swing 的 MDI

java - 在 Swing 应用程序中扩展系统外观

java - 未找到文件异常 -> Jasypt -> com/ulisesbocchio/jasyptspringboot/configuration/EnableEncryptablePropertiesConfiguration.class

java - 从 servlet 检索文件路径