【问题标题】:inserting char arrays in buttons在按钮中插入 char 数组
【发布时间】:2011-09-22 02:21:27
【问题描述】:

我正在尝试将字母表放在不同的按钮中,但无法正常工作。我的代码如下所示:

char[] Letter = {'a','b','c','d','e','f','g','h'
                    ,'i','j','k','l','m','n','o','p','q'
                    ,'r','s','t','u','v','w','x','y','z'};
Button[] But;
for (int i = 0; i <= 26; ++i) {
    But = new Button(Letter[i]);
    this.add(But[i], BorderLayout.SOUTH);
}

【问题讨论】:

  • 我在您的问题中删除了很多不必要的噪音,以便于阅读。
  • @Makenshi 请 1) 将 Button 更改为 JButton,2) 所有 JComponent 必须以字符 "J" 开头,3) 不要使用 AWT Components,4)并避免将AWT Components 与 Swing JComponents` 混合,5) 否则没有人可以保证正确输出到屏幕

标签: java arrays swing button awt


【解决方案1】:

这应该适合你。它在 Java 中以小写字母开头命名变量的约定。

char[] letters = {'a','b','c','d','e','f','g','h'
        ,'i','j','k','l','m','n','o','p','q'
        ,'r','s','t','u','v','w','x','y','z'};
Button[] buttons = new Button[26];

for(int i = 0;i< 26;++i){
    buttons[i] = new Button(Character.toString(letters[i])); //need to convert char to String first
    this.add(buttons[i],BorderLayout.SOUTH);
}

【讨论】:

  • ic 我会考虑到这一点,但我仍然收到错误“找不到符号,符号:构造函数按钮(字符)位置:类 java.awt.Button 似乎我不能在按钮中使用字符或某事
  • 刚刚编辑了我的答案以解决您遇到的问题。 Button 的构造函数需要一个字符串,但我错误地传递了一个字符。我已经评论了它发生的那一行。因此,从技术上讲,您不能使用原始字符来创建按钮,它们需要转换为字符串。
  • 没问题,很高兴对您有所帮助。
【解决方案2】:
char[] letters = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for(char c : letters) add(new JButton(new String(c)));

【讨论】:

  • 看起来不错,但你能用普通按钮吗?我现在不应该使用摇摆库:S
  • @Makenshi 只需将JButton 替换为Button
【解决方案3】:

你可能想要这个

But[i] = new Button(Letter[i]);

而不是这个

But = new Button(Letter[i]);

【讨论】:

  • 哦,是的,对不起,忘记放了,但是它仍然不起作用它说但是可能没有被初始化:S
  • 那是因为“Button[] But”应该是“Button[] But = new Button[26]”。
  • 是的,但似乎错误是因为我不能在按钮中使用字符或任何想法我能做什么?有演员表吗?
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多