所以我很抱歉,如果这似乎是我要求你做我的作业......我保证我不是,我只需要一些帮助,因为我之前从未使用过多维数组。我会问一个朋友或我的老师......但它是一个在线课程,因此得到回应...需要更长的时间,然后从这里等待一个。到目前为止......我是唯一一个参加这个课程的人,所以朋友们对这些东西一无所知等等。所以...好吧这个程序正在制作......但我只是担心关于到目前为止的第一步,它列出了每个学生和他们名字旁边的4个标记。
实施例
John Smith 67 87 56 97
Jane Doe 87 56 76 92
等等等。
这就是目标。很简单....或者我想。以下是我的一些变数......
public class StudentGradesView extends FrameView {
int [][] aryStudent = new int [15][4]; //This is for the 15 students that can be inputted and 4 marks each.
int numOfStudents = 0; //number of students start of at zero until inputted...
int marks = 0; // not in use at this given moment
public StudentGradesView(SingleFrameApplication app) {
//unimportant....
}
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
numOfStudents ++;
String currentList = studentListField.getText();
//This picks up the four different marks from four different Fields...
aryStudent[numOfStudents][0] = Integer.parseInt(test1Field.getText());
aryStudent[numOfStudents][1] = Integer.parseInt(test2Field.getText());
aryStudent[numOfStudents][2] = Integer.parseInt(test3Field.getText());
aryStudent[numOfStudents][3] = Integer.parseInt(test4Field.getText());
//now the problem is when I press the add button which adds student names and mark) it only inputs
//the name and the last mark inputted in the test4field. What am I missing that loops all the grades from test1Field - test4Field?
for (int x=0; x < numOfStudents ; x++) {
for (int y=0; y < 4; y++) {
studentListField.setText("" + firstNameField.getText() + " " + lastNameField.getText() + " " + aryStudent[numOfStudents][y] + "\n" + currentList);
}
System.out.println("");
}
}
答案 0 :(得分:0)
连接一个字符串,并在构建完成后在studentListField中显示它。现在,你只是用当前的一个替换最后显示的等级,所以从用户的角度来看,你只能看到最后一个等级,是吗?
for(int x = 0; x < numOfStudents; x++)
{
String str = firstNameField.getText() + " " + lastNameField.getText();
for(int y = 0; y < 4; x++)
{
str = str + " " + aryStudent[x][y];
}
studentListField.setText(str);
}
要么这个解决方案是正确的,要么你必须更好地解释(准确描述你的期望和实际发生的事情),我将不得不喝更多咖啡。
答案 1 :(得分:0)
EDITED: 如果您想在文本字段中打印所有学生和成绩,那么 你可能还需要一些地方来记住学生的名字(以及成绩),对吧? 声明为:
String[] studentNames=new String[15];
然后,按下按钮后,还要将名称添加到数组中:
studentNames[numOfStudents] = firstNameField.getText() + " " + lastNameField.getText();
最后,使用StringBuilder
构建字符串,然后将其设置为文本字段:
numOfStudents++; // only increase the count right before the loop, after you've added the new student to the arrays.
StringBuilder sb = new StringBuilder();
for (int x=0; x < numOfStudents ; x++) {
sb.append(studentNames[x]);
for (int y=0; y < 4; y++) {
sb.append(" " + aryStudent[x][y]);
}
sb.append("\n");
}
studentListField.setText(sb.toString());