首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMenuItem和ActionListener

JMenuItem和ActionListener
EN

Stack Overflow用户
提问于 2013-12-06 11:43:58
回答 2查看 112关注 0票数 0

我的JMenuItem和ActionListener有问题,我正在尝试制作一个JMenuItem,它可以选择游戏中的玩家数量,但我的PlayerAlt[i].addActionListener(players);代码给了我一个错误,即“玩家不能被解析为变量”

代码语言:javascript
复制
    String[] Players = { "1", "2", "3", "4" };
    JMenu pmenu = new JMenu("Players");
    final JMenuItem[] PlayerAlt = new JMenuItem[Players.length];
    for (int i = 0; i < PlayerAlt.length; i++) {
      PlayerAlt[i] = new JMenuItem(Players[i]);
      pmenu.add(PlayerAlt[i]);
      PlayerAlt[i].addActionListener(players);
    }
    ActionListener players = new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        for (int i = 0; i < PlayerAlt.length; i++) {
          if (e.getSource() == PlayerAlt[i]) {
        Gamerside.add(s1);
          }
        }
      }
    };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-06 11:46:10

变量players是在您想使用它之后声明的。因此,这是无法解决的。

players声明移至循环上方

代码语言:javascript
复制
ActionListener players = new ActionListener() {
      ......
};
for (int i = 0; i < PlayerAlt.length; i++) {
    .....
    PlayerAlt[i].addActionListener(players);
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-06 11:46:15

在您的示例中,players在尝试使用它之后被声明为(在两行之后),所以在尝试使用它的时候它是不存在的。

为求澄清:

代码语言:javascript
复制
int b = 4;
b += a; //Error, a does not exist yet..
int a = 2; //...because it is declared here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20423047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档