java如何从按钮点击中获取文本?
所以我有两门课。我正在制作一个GPA计算器,带有按钮a-F。当我点击一个按钮时,我需要Hashmap主题中按钮的文本。每个按钮都有自己的字符A-F。在这种情况下,当为特定主题单击A级按钮时,hashmaps值为[button[id=exA,styleClass=button]'A']。我只希望hashmap的值是A,我只希望它是[A]。我还需要它不显示空值。想象一下,如果我有6门课。我只点击了其中5个按钮,但没有点击最后一个。我不需要打印“未按下”按钮的值,它看起来像[]
public class Subjects {
//protected static HashMap <String, List<Button>> subjects = new HashMap<>();
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);
}
}
}
这是点击类
public class Clicks extends Subjects {
// Skifter farge på knappene
public static void onClicks(Button newButton, String subject) {
List<Button> grade = subjects.get(subject);
/*
* Sjekker om gammel knapp ikke er samme som nye.
* Hvis de ikke er det, endre gammel knapp til gammel farge.
*/
grade.add(newButton);
if (grade.size() > 0) {
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);
}
}
}
}
共 (0) 个答案