Java Swing电影管理程序ActionListener按钮点击无响应问题排查
问题根因
你当前的代码核心错误是MovieDatabase类实现了ActionListener接口,但没有重写接口强制要求的public void actionPerformed(ActionEvent e)方法。你自行定义的addButtonactionPerformed、showButtonActionPerformed两个方法不属于接口约定的实现,按钮点击事件触发时JVM找不到对应的回调逻辑,所以点击没有任何响应。
修复方案
你只需要在MovieDatabase类中添加接口方法的重写实现,根据事件源判断调用对应的处理逻辑即可,添加代码如下:
@Override public void actionPerformed(ActionEvent e) { // 判断点击的是哪个按钮,调用对应处理方法 if (e.getSource() == addJButton) { addButtonactionPerformed(e); } else if (e.getSource() == showJButton) { showButtonActionPerformed(e); } }
优化建议
你当前的年份输入逻辑没有做合法性校验,如果用户输入非数字内容,Integer.parseInt会直接抛出异常导致程序崩溃,建议添加异常处理:
// 修改addButtonactionPerformed中读取年份的逻辑 int year; try { year = Integer.parseInt(yearJTextField.getText().trim()); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "发行年份请输入合法数字", "输入错误", JOptionPane.ERROR_MESSAGE); return; }
内容的提问来源于stack exchange,提问作者Wolf Of Media
相关产品推荐
相关产品推荐

