我在从 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/