【问题标题】:How do I link arrays from different buttons together?如何将来自不同按钮的数组链接在一起?
【发布时间】:2015-07-22 00:41:18
【问题描述】:

我是 Java 新手,需要一些帮助!

在我的代码上工作了很长时间后,我终于找到了我的代码的问题。问题是我有 3 个单独的按钮是私人无效的,如果这与任何事情有关,并且每个按钮都应该从我的数组中添加/减去字符串。我有一个名为 strArray 的数组和 3 个按钮,这些按钮可以在单击、初始化、添加和删除时对其进行修改。第一个按钮是 Initialize,单击时输出

private void togbtnInitializeActionPerformed(java.awt.event.ActionEvent evt) {                                                 
    togbtnAdd.setEnabled(true);
    togbtnRemove.setEnabled(true);
    togbtnDisplay.setEnabled(true);

    String[] strArray = {"Calvin Harris - Overdrive(Part 2)", "DVBBS & Borgeous - TSUNAMI", "Martin Garrix - Tremor", "Martin Garrix - Animals", "Firebeatz - Max Ammo"};
    int intArrayLength = strArray.length;
    for (int i = 0; i < intArrayLength; i++){
        this.txtAreaOutput.setText(txtAreaOutput.getText() + "\n" + strArray[i]);
    }
    togbtnInitialize.setEnabled(false);        
}                                         

进入我的 gui 中的 textArea。所以现在我已经输出了这个,初始化按钮被禁用并且添加和删除被启用。这就是我发现问题的地方。在我输入一个字符串并单击添加按钮后,它没有将字符串添加到我在 Initialize 按钮代码中输入的 strArray 中。我通过使用“添加”按钮打印 strArray 来检查这一点,它只保存了我刚刚添加到其中的那个。

private void togbtnAddActionPerformed(java.awt.event.ActionEvent evt) {                                          
    strArray.add(this.txtInputName.getText());
    System.out.println(strArray);
    this.txtAreaOutput.setText(txtAreaOutput.getText() + "\n" + strArray.get(strArray.size()));        
}                                          

如何将所有 strArrays 链接在一起,这样如果我用一个按钮对其进行操作,它也会更改另一个按钮中的 strArray?提前致谢!

编辑:除非在我的按钮中为它创建一个变量,否则我仍然无法访问 strArray。

公共类 U3A4_CDCollection 扩展 javax.swing.JFrame {

public U3A4_CDCollection() {
    initComponents();
    ArrayList<String> strArray = new ArrayList<String>();
    strArray.add("Calvin Harris - Overdrive(Part 2)");
    strArray.add("DVBBS & Borgeous - TSUNAMI");
    strArray.add("Martin Garrix - Tremor");
    strArray.add("Martin Garrix - Animals");
    strArray.add("Firebeatz - Max Ammo");
}

【问题讨论】:

  • strArray 设为实例字段,以便每个按钮都可以访问它。将它封装在某种模型中会更好,但这将是一个开始......
  • 抱歉,您能解释一下我是怎么做到的,或者给我一个可以学习的链接吗?
  • 什么是strArray?有两种——一种是数组类型String[] strArray,另一种是你调用add方法strArray.add

标签: java arrays string arraylist


【解决方案1】:

缺少很多上下文,更不用说使用数组和其他具有add 方法的东西的混淆......

本质上,如果您希望类的方法能够与同一个变量进行交互,则该变量应声明为类实例字段。详情请见Understanding Class Members

public class U3A4_CDCollection extends javax.swing.JFrame {

    private ArrayList<String> strArray;

    public U3A4_CDCollection() {
        initComponents();
        strArray = new ArrayList<String>();
        strArray.add("Calvin Harris - Overdrive(Part 2)");
        strArray.add("DVBBS & Borgeous - TSUNAMI");
        strArray.add("Martin Garrix - Tremor");
        strArray.add("Martin Garrix - Animals");
        strArray.add("Firebeatz - Max Ammo");

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 2010-10-17
    • 2011-02-08
    • 2017-05-09
    • 2011-07-10
    • 2023-02-03
    • 1970-01-01
    • 2010-12-23
    相关资源
    最近更新 更多