Ich bin ein Anfänger in der Programmierung. Ich habe mit Java Swing herumgespielt und versucht, eine dumme App zu machen. Das ist mein Code. Es zeigt keine Fehler, aber es funktioniert nicht. Wenn das Dialogfeld angezeigt wird, wird der Wert der Variablen im Dialogfeld nicht angezeigt. Die Logik, die ich verwendet habe, ist richtig, denn wenn ich es im Compiler ohne die GUI-Sachen ausführe, funktioniert es perfekt. Wenn irgendwer sagen könnte, was ich hier falsch mache, wäre es sehr hilfreich.wie man den Wert der Variablen im Popup-Dialog mit Java Swing zeigt
Dies ist mein Code für die Berechnungen.
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class swingApp extends JFrame{
JLabel label;
JButton button;
public JLabel label2;
JTextField textField = new JTextField("enter you nicknamae");
String username=textField.getText();
public int geniusMeter;
public int sum=0;
public String sumAsString;
public void swingAppLogic(String name){
char[] letters = username.toCharArray();
char [] alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int [] measure={7,3,1,13,8,26,15,18,2,5,22,20,16,9,5,11,23,12,25,6,4,21,24,14,17,10};
for(int count=0;count<letters.length;count++){
for (int count1=0;count1<alphabet.length;count1++){
if (letters[count]==alphabet[count1]){
geniusMeter=measure[count1];
sum=sum+geniusMeter;
break;
}
}
}
sumAsString = Integer.toString(sum);
}
public swingApp(){
super("Genius Calculator");
setLayout(new FlowLayout());
label = new JLabel("Wanna know how genius you are?");
label2 = new JLabel(" ");
button = new JButton("press enter and then click me to know the results");
handlerClass handler = new handlerClass();
button.addActionListener(handler);
add(label);
add(label2);
add(button);
add(textField);
}
public class handlerClass implements ActionListener{
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog (null, sumAsString, "Title", JOptionPane.INFORMATION_MESSAGE);
}
}
}
und das ist meine Hauptmethode
import javax.swing.JFrame;
public class swingAppTester{
public static void main (String [] args){
swingApp object=new swingApp();
object.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
object.setSize(500,400);
object.setVisible(true);
}
}
Sie rufen die swingAppLogic() -Methode nicht überall auf, die den Wert von sumAsString berechnet. – Areca
also was kann ich tun, um es zu beheben? Wo soll ich die methode anrufen? –
Die Lösung ist in hamena314's Antwort. – Areca