Java 为未单击的buttonId获取null。要根据文件中的Id更改颜色吗

Java 为未单击的buttonId获取null。要根据文件中的Id更改颜色吗,java,button,colors,Java,Button,Colors,我有一个GPA计算器。我有一个带有按钮Id的列表。列表在一个文件中。当我在GPA计算器中加载文件时,我需要按钮来更改颜色。我得到的按钮Id是空的。这是我在控制器类中的代码。 控制器类为: @FXML private static Button exA, exB, exC, exD, exE, exF, inA, inB, inC, inD, inE, inF, maA, maB, maC, maD, maE, maF, diA, diB, diC, diD, diE, diF, obA, o

我有一个GPA计算器。我有一个带有按钮Id的列表。列表在一个文件中。当我在GPA计算器中加载文件时,我需要按钮来更改颜色。我得到的按钮Id是空的。这是我在控制器类中的代码。 控制器类为:

@FXML private static Button exA, exB, exC, exD, exE, exF, inA, 
inB, inC, inD, inE, inF, maA, maB, maC, maD, maE, maF, diA, diB, 
diC, diD, diE, diF, obA, obB, obC, obD, obE, obF, orA, orB, orC, 
orD,
orE, orF, ma3A, ma3B, ma3C, ma3D, ma3E, ma3F, komA, komB, komC, 
komD, komE, komF;

public void bindId() {
    gradesId = Arrays.asList(exA, exB, exC, exD, exE, exF, inA, 
            inB, inC, inD, inE, inF, maA, maB, maC, maD, maE, maF, diA, diB, 
            diC, diD, diE, diF, obA, obB, obC, obD, obE, obF, orA, orB, orC, orD,
            orE, orF, ma3A, ma3B, ma3C, ma3D, ma3E, ma3F, komA, komB, komC, komD, komE, 
komF);
    ConnectIdToButton.bindIdToButton(grades,gradesId);
}

@FXML
public void setGrades(ActionEvent event) throws IOException {
    UserGradesManager.getUserGradesFromFile("usergrades.txt");
    response();
    if (!response.getText().equals("Nothing to load")) {
        bindId();
类,该类对按钮ID进行排序: 公共类连接按钮{

public static void bindIdToButton(List <String> grades, List<Button> gradesId) {        
    for(String id:grades) {
        int i = gradesId.indexOf(id);
        if (id.substring(0, id.length() - 1).equals("ex")) {
            Clicks.onClicks(gradesId.get(i), "Examen philosophicum for naturvitenskap og 
teknologi");
        }
        else if(id.substring(0, id.length() - 1).equals("in")) {
            Clicks.onClicks(gradesId.get(i), "Informasjonsteknologi, grunnkurs");
        }
        else if (id.substring(0, id.length() - 1).equals("ma")) {
            Clicks.onClicks(gradesId.get(i), "Matematikk 1");
        }
        else if (id.substring(0, id.length() - 1).equals("di")) {
            Clicks.onClicks(gradesId.get(i), "Diskret matematikk");
        }
        else if (id.substring(0, id.length() - 1).equals("ob")) {
            Clicks.onClicks(gradesId.get(i), "Objektorientert programmering" );
        }
        else if (id.substring(0, id.length() - 1).equals("or")) {
            Clicks.onClicks(gradesId.get(i), "Organisasjonsteori og selskapsrett");
        }
        else if (id.substring(0, id.length() - 1).equals("ma3")) {
            Clicks.onClicks(gradesId.get(i),"Matematikk 3" );
        }
        else if (id.substring(0, id.length() - 1).equals("kom")) {
            Clicks.onClicks(gradesId.get(i),"Kommunikasjon - Tjenester og nett" );
        }
    }
}
}
publicstaticvoidbindidtobutton(List grades,List gradesId){
用于(字符串id:等级){
int i=等级SID.indexOf(id);
if(id.substring(0,id.length()-1).equals(“ex”)){
点击.onClicks(gradesId.get(i),“自然维滕斯卡普大学哲学考试”
技术);
}
else if(id.substring(0,id.length()-1).equals(“in”)){
Clicks.onClicks(gradesId.get(i),“信息技术,grunnkurs”);
}
else if(id.substring(0,id.length()-1).等于(“ma”)){
Clicks.onClicks(gradesId.get(i),“Matematikk 1”);
}
else if(id.substring(0,id.length()-1).equals(“di”)){
Clicks.onClicks(gradesId.get(i),“Diskret matematikk”);
}
else if(id.substring(0,id.length()-1).equals(“ob”)){
Clicks.onClicks(gradesId.get(i),“ObjectOrientProgrammering”);
}
else if(id.substring(0,id.length()-1).equals(“or”)){
Clicks.onClicks(gradesId.get(i),“OrganisaJonsteori og selskapsrett”);
}
else if(id.substring(0,id.length()-1).equals(“ma3”)){
Clicks.onClicks(gradesId.get(i),“Matematikk 3”);
}
else if(id.substring(0,id.length()-1).equals(“kom”)){
点击.onClicks(gradesId.get(i),“Kommunikasjon-Tjenester og nett”);
}
}
}
}
我将每个科目的成绩存储在哈希图中

public class Subjects {

protected static HashMap <String, List<Button>> subjects = new HashMap<>();

// Setter opp fagene uten karakter foreløpig i et hashmap
public static void setUpSubjects() {
    for (String subject: new String[] {"Examen philosophicum for naturvitenskap og 
teknologi",
            "Informasjonsteknologi, grunnkurs","Matematikk 1",
            "Diskret matematikk","Objektorientert programmering",
            "Organisasjonsteori og selskapsrett","Matematikk 3",
            "Kommunikasjon - Tjenester og nett"}) { 
        List<Button> grade = new ArrayList <> ();
        subjects.put(subject, grade);
    }
}
}
公共课科目{
受保护的静态HashMap主题=新HashMap();
//Setter opp fagene uten karakter foreløpig i et hashmap
公共静态对象(){
对于(字符串主题:新字符串[]{”自然维滕斯卡普og的哲学考试
技术“,
“信息技术,grunnkurs”,“Matematikk 1”,
“Diskret matematikk”,“Objektorienter编程”,
“Organisasjonsteori og selskapsrett”、“Matematik3”,
“Kommunikasjon-Tjenester og nett”{
列表等级=新的ArrayList();
科目。put(科目、年级);
}
}
}
按钮的颜色变化发生在这里。它需要一个按钮。我试图给它,但不会发生

public class Clicks extends Subjects {

private static List <Button> grade;

public static void onClicks(Button newButton, String subject) {
    grade = subjects.get(subject);
    grade.add(newButton);
    // Sjekker om gammel knapp ikke er samme som nye. 
    // Hvis de ikke er det, endre gammel knapp til gammel farge.
    if (grade.size() > 1) {
        Button oldButton = grade.get(0);
        if (oldButton != newButton) {
            oldButton.setStyle("-fx-background-color: orange");
            oldButton.setTextFill( Color.BLACK);
        }
    }
     // Hindrer at flere objekter skifter farge. Kun én tilatt.
    if (grade.size() == 1) {
        newButton.setStyle("-fx-background-color: Black");
        newButton.setTextFill( Color.ORANGE);
    }
     // Hvis gammel og ny knapp ikke er samme, gi ny farge på nye.
    else if (grade.get(0) != grade.get( 1)) { 
        newButton.setStyle("-fx-background-color: Black");
        newButton.setTextFill( Color.ORANGE);
        grade.remove(0);
    }
     // Skifter til gammel farge hvis du trykket feil. 
     // Kan hende studenten ikke har tatt det faget.
     // Derfor fint å fjerne knappetrykk.
    else {
        while(grade.size() != 0) {
            newButton.setStyle("-fx-background-color: orange");
            newButton.setTextFill( Color.BLACK);
            grade.remove(0);
        }
    }
}
public static List<Button> getGrade(){
    return grade;
}
公共类单击扩展主题{
私有静态列表等级;
公共静态void onclick(按钮newButton,字符串主题){
等级=科目。获取(科目);
等级。添加(纽扣);
//Sjekker om gammel knapp ikke和samme som nye。
//这是一个很好的例子,从甘美尔·纳普到甘美尔·法基。
如果(grade.size()>1){
按钮oldButton=grade.get(0);
如果(旧按钮!=新按钮){
oldButton.setStyle(“-fx背景色:橙色”);
oldButton.setTextFill(颜色:黑色);
}
}
//弗雷尔·奥布杰克特·斯基夫特·法基的辛德勒。昆恩·蒂拉特。
if(grade.size()==1){
newButton.setStyle(“-fx背景色:黑色”);
newButton.setTextFill(颜色为橙色);
}
//我是甘美尔·奥格·纳普·艾克·萨米,我是法基·帕尼。
如果(grade.get(0)!=grade.get(1)){
newButton.setStyle(“-fx背景色:黑色”);
newButton.setTextFill(颜色为橙色);
等级。移除(0);
}
//斯基弗·蒂尔·加美尔·法基·杜特利克特·费勒。
//这是一个非常好的学生。
//德福·芬奇·克纳佩特里克。
否则{
while(grade.size()!=0){
newButton.setStyle(“-fx背景色:橙色”);
newButton.setTextFill(颜色:黑色);
等级。移除(0);
}
}
}
公共静态列表getGrade(){
返回等级;
}
}