- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在第一个类 (ColoredWordsExperiment) 中工作的数组,而第二个类 (ButtonHandler) 找不到它。
奇怪的是,如果我在 ButtonHandler 类中,替换 coloredWords.labels[i] 或简单地说“coloredWords.labels[1]” coloredWords.labels1,而在第一个类中我声明 JLabel labels1 = new JLabel;
它有效。
这基本上就是我最初拥有的,但由于我有 12 个标签,所以我决定使用数组。现在的问题是 ButtonHandler 类找不到变量“coloredWords.labels[i]”。
这是代码(我省略了不重要的内容,否则代码会很长):
public class ColoredWordsExperiment {
ButtonHandler buttonHandler;
ColoredWordsExperiment(){
JLabel[] labels = new JLabel[12];
for (i = 0; i < 12; i++) {
labels[i] = new JLabel("Press Button");
labels[i].setPreferredSize(new Dimension(90,40));
labels[i].setOpaque(true);
labels[i].setBackground(Color.white);
labels[i].setHorizontalAlignment(SwingConstants.CENTER);
labelContainer.add(labels[i]);
}
button1 = new JButton("Matching");
buttonHandler = new ButtonHandler(this);
button1.addActionListener(buttonHandler);
}
public static void main(String[] arg) {
new ColoredWordsExperiment();
}
}
-
class ButtonHandler implements ActionListener {
ColoredWordsExperiment coloredWords;
public ButtonHandler(ColoredWordsExperiment coloredWords) {
this.coloredWords = coloredWords;
}
@Override
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("Matching")) {
for (i = 0; i < 12; i++) {
coloredWords.labels[i].setText("Text changed");
}
}
}
最佳答案
JLabel[] labels
是在 ColoredWordsExperiment
类的构造函数内声明的变量。将其作为类中的字段移动并在类构造函数中初始化它:
public class ColoredWordsExperiment {
ButtonHandler buttonHandler;
//it should be declared here
JLabel[] labels;
ColoredWordsExperiment() {
//this is a variable inside the class constructor
//JLabel[] labels = new JLabel[12];
//this line initializes the labels field
labels = new JLabel[12];
// rest of your code...
}
}
此外,您还应该声明一个 getter 方法来获取 labels
变量内的 JLabel
之一,而不是直接访问该变量。这将使您的代码更清晰。
关于java - 为什么这个类找不到这个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332509/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!