如何将来自不同按钮的数组链接在一起?

时间:2015-07-22 00:41:19

标签: java arrays string arraylist

我是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,除非在我的按钮中为它创建一个变量。

public class 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");
}

1 个答案:

答案 0 :(得分:0)

缺少很多上下文,更不用说使用数组的混淆以及其他具有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");

}