У меня есть JTextfield в моем коде, где я попрошу пользователя ввести идентификационный номер. После ввода идентификационного номера этот код будет смотреть, находится ли введенный идентификационный номер в файле grade.txt (файл, который я создал). Если введенный идентификационный номер находится в текстовом файле, он отобразит оценки пользователя. Когда я запускаю эту программу и вводят другой идентификационный номер, он отображает тот же класс первой строки (идентификационный номер). Мне нужна ваша помощь, как я могу это кодировать.Структура управления в Java
@Marcx здесь полный код:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package student_grade;
import java.util.*;
import java.io.*;
import java.awt.Component;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
*
* @author Christian
*/
public class Student_grade {
public static void main(String[] args) throws FileNotFoundException {
//declaration
String firstName, lastName, discard;
double subject1, subject2, subject3, subject4, subject5;
long userID = 0;
//get file from the address
Scanner inFile= new Scanner(new FileReader("D:\\grade.txt"));
HashMap<Double, student> map = new HashMap<Double, student>();
while (inFile.hasNext())
{
student s = new student();
s.id = inFile.nextDouble();
s.subject1 = inFile.nextDouble();
s.subject2 = inFile.nextDouble();
s.subject3 = inFile.nextDouble();
s.subject4 = inFile.nextDouble();
s.subject5 = inFile.nextDouble();
map.put(s.id, s);
}
student student = map.get(userID);
//JTextField
JTextField fullName = new JTextField();
JTextField section = new JTextField();
JTextField idnumber2 = new JTextField();
Object[] message =
{
"Name:", fullName,
"Section:", section,
"ID Number:", idnumber2
};
Component parent = null;
int option = JOptionPane.showConfirmDialog(parent, message, "Check your Grades!", JOptionPane.OK_CANCEL_OPTION);
//display information
if (option == JOptionPane.OK_OPTION)
{
String value1 = fullName.getText();
String value2 = section.getText();
String value3 = idnumber2.getText();
String outputStr= "Name: "+ fullName.getText() +
"\nSection: "+ section.getText()+
"\nID Number: "+ student.id +
"\nMath: "+ student.subject1 +
"\nEnglish: "+ student.subject2 +
"\nFilipino: "+ student.subject3 +
"\nReligion: "+ student.subject4 +
"\nComputer: "+ student.subject5;
JOptionPane.showMessageDialog(null, outputStr,"User Information",JOptionPane.INFORMATION_MESSAGE);
}
//closing main arguments
}
}
Вы, кажется, просто хватаете первый набор чисел в файле, поэтому, конечно, он отображает только оценки первого ученика. – Carcigenicate
Можете ли вы мне помочь, как мне это сделать? Я только начинаю изучать Java, поэтому мне это очень сложно. –
Прочитайте содержимое файла, найдите его, чтобы найти имя, которое вы ищете, затем возьмите цифры, которые появляются после него. – Carcigenicate