java - 在 for 循环 JAVA 中定义方法

标签 java swing loops methods for-loop

所以,我试图为一大组按钮定义一组方法,我想我可以在 for 循环中完成它,但我遇到了一个我无法破译的语法错误。 .这是我想要使用的代码的简化版本...错误是:“ token 上的语法错误,错误的构造”

JMenu blocks = new JMenu("Block");
menuBar.add(blocks);

for (int i=0; i < 9; i++){
  public void action() {
      System.out.println(i+"");
  }
  JMenuItem blockName = new JMenuItem(i+"");
  blockName.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
          action();
      }
  });
  blocks.add(blockName);
}

最佳答案

删除您的 action 方法并将代码放入 ActionListener

  public void actionPerformed(ActionEvent arg0) {
      System.out.println(i+"");
      // ... etc.
  }
<小时/>

正如其他人在答案中提到的,i 无法从 actionPerformed 内访问。具体来说,请参阅@dasblinkenlight 的答案以获得更彻底的回应。

关于java - 在 for 循环 JAVA 中定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584324/

相关文章:

java - 如何在循环中迭代多个不同类型的数组?

java - GCJ 目前(2009 年年中)的现状如何?

java - 将数据附加到 JTextArea 以进行运行模拟

c++ - 尝试在 C++ 中将两个动态创建的矩阵(2d vector )相乘

java - 如何将 JScrollpane 添加到 JPanel?

Java Swing 线程改变 UI - 并发症

javascript - 可以 .push() 到动态命名的键吗?

java - JavaEE 应用程序中的 app-inf 和 web-inf 文件夹有什么区别?

java - Java中设置JTextField、JLabel和JButton的位置

java - 使用 JAXB 获取 XML 签名的最佳方法