【发布时间】:2018-08-21 09:19:30
【问题描述】:
我的麻烦在于试图记录选择了哪个数组。例如,如果我有一个包含 5 个元素的数组,则记录正在选择第三个元素。具体来说,我有 2 个不同的数组,每个数组有 10 个元素;一个数组由整数组成(称为 money),另一个是 JButton 数组。
public class Game extends JFrame {
JPanel cases = new JPanel(new GridLayout(2, 5)); //Section containing game cases
JButton[] caseButton = new JButton[10]; // Declaration of the
String gameCase[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; // case buttons
int[] money = {1, 2, 5, 10, 100, 1000, 5000, 10000, 20000, 30000}; //money values
}
public void StartGame() {
Shuffle(money); //Shuffle the money
//Initialising case buttons
for (int i = 0; i < caseButton.length; i++) {
caseButton[i] = new JButton(gameCase[i]);
cases.add(caseButton[i]);
caseButton[i].setPreferredSize(new Dimension(100, 100));
caseButton[i].setFont(new Font("Dialog", Font.BOLD, 35));
caseButton[i].setForeground(new Color(255, 215, 0));
caseButton[i].setActionCommand(gameCase[i]);
}
Money 数组在程序开始时被打乱,以便在每次运行时使用不同的顺序。 What I want to know is when one of these JButtons is selected, how can I record which Array element was selected?所以我可以用相应的货币数组做一些事情。 (例如,选择了第 7 个 JButton,然后我想将 JButton 的文本更改为第 7 个货币数组中保存的数字。) 帮助将不胜感激。这是下周到期的,还有很多工作要做。
【问题讨论】:
-
您需要展示更多代码和设置。在目前的状态下,这个问题太宽泛了。如果不反复讨论您的项目结构以及解决方案的具体外观,就无法回答这个问题。
-
你如何确定一个按钮被选中了?你有一些事件监听器吗?每个按钮有一个还是一个?按钮知道它们的索引吗?听众知道索引吗?为什么不是每个按钮都与不同的操作相关联?与其索引对应的动作。
-
添加了更多代码。对于那个很抱歉。稍后有一个事件侦听器,但是 atm 中没有任何内容(或者至少没有任何内容),因为我不知道在其中放入什么会产生所需的结果。另外,按钮/听众是否知道索引是什么意思?那会做什么,我该如何设置?
-
嗯,通常你会将一个动作与每个按钮相关联。当一些被选中时,你有一个监听器响应事件。要么您有一个触发所有按钮的侦听器,要么每个按钮都有一个侦听器。后一种方案知道其对应的按钮,可以触发相应的动作。第一个解决方案需要迭代按钮并检查哪个被选中。然后根据所选按钮使用适当的操作。 general tutorial 可能比 StackOverflow 更有帮助。
-
我有第一个听众。它将为所有按钮激活(因为窗口包含的唯一按钮是数组)。不过你说的基本上是我需要的。知道选择了哪个按钮以允许我在货币数组中执行相应的操作。