java - 在 Java 中从 "2d array"检索值时出现问题

标签 java arrays

我在从 Java 中的“二维数组”检索值时遇到问题。我知道 Java 中并不存在二维数组这样的东西,但请耐心听我说。我对 Java 很陌生,正在为我的类(class)开发一个项目。我应该将信息从 jTextField 提交到数组,然后将存储在数组中的信息拉回以生成摘要报告。这是我到目前为止所拥有的:

public class KETTask1UI extends javax.swing.JFrame {
    //Creates the "2d array" to store minutes worked and payment values
    int[][] paymentArray = new int [20][2];


    /**
     * Creates new form KETTask1UI
     */
    public KETTask1UI() {
        initComponents();
    }


    private void runreportActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        for (int i=0; i<paymentArray.length; i++) {
            for (int j=0; j<paymentArray[i].length; j++) {
        //Blanks out the displayTextArea
        displayTextArea.setText(" ");
        //Displays the contents of the array in the displayTextArea
        displayTextArea.append("History of minutes and payment entered:\n");
        displayTextArea.append(String.valueOf(paymentArray[i][j]));
        }   
        }
    }                                         

    private void minutesActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
    }                                       

    private void quitActionPerformed(java.awt.event.ActionEvent evt) {                                     
        System.exit(0);
    }                                    

    private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:


 int min = Integer.parseInt(minutes.getText());
int pay = Integer.parseInt(payment.getText());
for (int i=0; i<paymentArray.length; i++) {
     for (int j=0; j<paymentArray[i].length; j++) {
        //Sets the amount of minutes worked and payment to the array
        paymentArray[i][0] = min;
        paymentArray[i][1] = pay;
        //display a message to the user to let them know the values that they've entered.
        displayTextArea.append("******************\nRaw Tutoring Earnings Data\n\nMinutes     Earnings\n");
        displayTextArea.append(String.valueOf(paymentArray[i][j]));
        displayTextArea.append("\n\n******************");
                }
            }

    }


    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new KETTask1UI().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JTextArea displayTextArea;
    private javax.swing.JButton enterButton;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField minutes;
    private javax.swing.JTextField payment;
    private javax.swing.JLabel paymentLabel;
    private javax.swing.JButton quit;
    private javax.swing.JButton runreport;
    private javax.swing.JLabel timeLabel;
    // End of variables declaration                   
}

现在,当我点击输入按钮时,它给我的只是以下内容(30 是最后的分钟数,20 是最后的付款号码):

******************
Raw Tutoring Earnings Data

Minutes     Earnings
30

************************************
Raw Tutoring Earnings Data

Minutes     Earnings
20

此消息在文本区域中重复 20 次。如果我输入更多数据,它只会对新数字执行相同的操作。

我需要它看起来像这样:

******************
Raw Tutoring Earnings Data

Minutes     Earnings
20          30

******************

当我输入新值并再次按下输入按钮时,我需要它显示更新的列表,如下所示:

******************
Raw Tutoring Earnings Data

Minutes     Earnings
20          30
30          15

******************

最佳答案

Java 中确实存在二维数组,并且您正确使用了它们。但是,在第二个代码块中,您使用 paymentArray 的第一个维度的长度,并使用“j”进行循环。使用它来访问第二个维度的长度。

for (int i = 0; i < paymentArray.length; i++) {
    for (int j = 0; j <paymentArray[i].length; j++) {
        displayTextArea.append(String.valueOf(paymentArray[i][j]));
    }
}

关于java - 在 Java 中从 "2d array"检索值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435692/

相关文章:

java - Android 将 .cpm 附加到 mp4

java - 使用 POST 方法提交的表单在 Firefox 中被截断

java - Android 运行应用程序时出错 : Default Activity not found

java - 对 JComboBox 使用 setEditable() 时对齐会重置

java - 将 .txt 文件传输到数组时出错(线程异常)

javascript 数组 'undefined' 控制台日志

Java - 在发送到方法之前递增变量

java - 如何从 jar 文件中获取函数签名?

php - 将多维数组简化为线性数组

javascript - 合并数组到对象数组 JavaScript