【问题标题】:Choose what an array stores based on button press根据按钮按下选择数组存储的内容
【发布时间】:2011-11-01 13:32:03
【问题描述】:
我正在尝试找到一种方法来根据用户在 GUI 上按下的按钮来选择数组存储的内容。
由于变量名相同,显然这不会编译。
计算在循环之外执行,但使用“值”。我只是希望用户能够根据他们按下的按钮来确定数组中设置的值。明显的问题是不能两次使用名称“values”,这是我遇到问题的地方,因为我有一个需要变量“values”的 for 循环,我不想重新添加当最有可能是我目前看不到的简单解决方法时,为每个数据集编写多次代码。
【问题讨论】:
标签:
java
arrays
swing
data-structures
【解决方案1】:
只需将声明拉出来:
double[] Xvalues = null;
if (e.getSource() == X1btn) {
Xvalues = new double[]{2001,350,799,1004};
}
else if (e.getSource() == X2btn) {
Xvalues = new double[]{5,62,28,500};
}
【解决方案2】:
更好的方法是继承JButton 并将一组值与每个实例相关联。要检索按钮的值,请包含访问器。
示例
public final class JArrayButton extends JButton{
private final double[] values;
public JArrayButton(double[] values){
this.values = values;
}
// ... other stuff (e.g. constructors)
public final double[] getValues(){
return values;
}
}
【解决方案3】:
如果您在循环之外创建数组会怎样。
双 Xvalues[] = 新 Xvalues[5]; //或者你想要的任何尺寸
然后使用 if/else 语句
if (e.getSource() == X1btn) {
Xvalues ={2001,350,799,1004};
} else if (e.getSource() == X2btn) {
Xvalues={5,62,28,500};
}