Hallo zusammen,
Ich habe ein Programm geschrieben bei dem dezimale, binäre, hexadezimal Zahlen in das jeweilige andere Zahlensystem umgewandelt werden sollen. Hier der Code:
Bisher ist nur mein Ziel dass wenn man auf den Button drückt und zuvor eine Zahl in das Textfeld reingeschrieben hat, diese Zahl unter dem JLable „Die gegebene Zahl wahr: in ****“ anzuzeigen, das klappt auch jedoch muss man nach dem betätigen von buttona die combobox von_zu verstellen damit die gegebene Zahl angezeigt wird.
Ich verstehe einfach nicht warum. Das einzige wie ich mir es erklären kann ist das ich die vielen if Schleifen für das Rechnungsprogramm nicht richtig beendet habe und ich dashalb jedes mal die Combobox noch verstellen muss.
Wie kann ich den Fehler im System beheben?
Hoffe auf baldige Antwort, schönen Tag euch noch
Vg
Ich habe ein Programm geschrieben bei dem dezimale, binäre, hexadezimal Zahlen in das jeweilige andere Zahlensystem umgewandelt werden sollen. Hier der Code:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main {
static JLabel texta = new JLabel("Programm zum Umwandeln von Zahlen:");
static JLabel textc = new JLabel("Zahlenart des Ergebnises:");
static JLabel textb = new JLabel("gegebene Zahl:");
static JTextField gegebeneZahl = new JTextField("gegebene Zahl hier Eintragen");
static JButton buttona = new JButton("Umwandlung starten");
public static void main(String[] args) {
JFrame frame = new JFrame("Zahlenumwandler von Kimi");
frame.setSize(800,450);
frame.setLocation(100,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String von_zs_Liste[] = {"Dezimal", "Binear", "Hexadezimal"};
JComboBox von_zs = new JComboBox(von_zs_Liste);
von_zs.setBounds(600,100,150,30);
JLabel textd = new JLabel("Die gegebene Zahl wahr: in Dezimal");
textd.setBounds(50,160,450,30);
frame.add(textd);
von_zs.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (von_zs.getSelectedIndex() == 0) {
textd.setText("Die gegebene Zahl wahr: in Dezimal");
} else {
if (von_zs.getSelectedIndex() == 1){
textd.setText("Die gegebene Zahl wahr: in Binear");
} else {
textd.setText("Die gegebene Zahl wahr: in Hexadezimal");
}
}
}
});
String zu_zs_Liste[] = {"Dezimal", "Binear", "Hexadezimal"};
JComboBox zu_zs = new JComboBox(zu_zs_Liste);
zu_zs.setBounds(600,230,150,30);
JLabel textf = new JLabel("Ergebnis: in Dezimal");
textf.setFont(new Font("", 0, 15));
textf.setBounds(50,80,450,50);
frame.add(textf);
zu_zs.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (zu_zs.getSelectedIndex() == 0) {
textf.setText("Ergebnis: in Dezimal");
} else {
if (zu_zs.getSelectedIndex() == 1){
textf.setText("Ergebnis: in Binear");
} else {
textf.setText("Ergebnis: in Hexadezimal");
}
}
}
});
buttona.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String textFromTextfield = gegebeneZahl.getText();
Integer GeG = Integer.parseInt(textFromTextfield);
JLabel textg = new JLabel("" + GeG);
JLabel texte = new JLabel("");
textg.setBounds(50, 180, 650, 30);
texte.setBounds(50,120,550,30);
frame.add(textg);
frame.add(texte);
if (von_zs.getSelectedIndex() == 0) {
if (zu_zs.getSelectedIndex() == 0) {
texte.setText("" + GeG);
}
if (zu_zs.getSelectedIndex() == 1) {
}
if (zu_zs.getSelectedIndex() == 2) {
}
} else {
if (von_zs.getSelectedIndex() == 1) {
if (zu_zs.getSelectedIndex() == 0) {
}
if (zu_zs.getSelectedIndex() == 1) {
texte.setText("" + GeG);
}
if (zu_zs.getSelectedIndex() == 2) {
}
} else {
if (von_zs.getSelectedIndex() == 2) {
if (zu_zs.getSelectedIndex() == 0) {
}
if (zu_zs.getSelectedIndex() == 1) {
}
if (zu_zs.getSelectedIndex() == 2) {
texte.setText("" + GeG);
}
}
}
}
} catch (Exception error) {
gegebeneZahl.setText("gegebene Zahl hier Eintragen");
}
}
});
texta.setFont(new Font("Programm zum Umwandeln von Zahlen:", 0, 20));
texta.setBounds(100,30,450,50);
textb.setBounds(600,70,100,30);
textc.setBounds(600,200,200,30);
gegebeneZahl.setBounds(50,280,500,30);
buttona.setBounds(100,330,390,40);
frame.add(buttona);
frame.add(gegebeneZahl);;
frame.add(textc);
frame.add(textb);
frame.add(texta);
frame.add(zu_zs);
frame.add(von_zs);
frame.setLayout(null);
frame.setVisible(true);
}
}
Bisher ist nur mein Ziel dass wenn man auf den Button drückt und zuvor eine Zahl in das Textfeld reingeschrieben hat, diese Zahl unter dem JLable „Die gegebene Zahl wahr: in ****“ anzuzeigen, das klappt auch jedoch muss man nach dem betätigen von buttona die combobox von_zu verstellen damit die gegebene Zahl angezeigt wird.
Ich verstehe einfach nicht warum. Das einzige wie ich mir es erklären kann ist das ich die vielen if Schleifen für das Rechnungsprogramm nicht richtig beendet habe und ich dashalb jedes mal die Combobox noch verstellen muss.
Wie kann ich den Fehler im System beheben?
Hoffe auf baldige Antwort, schönen Tag euch noch
Vg