Schönen guten Abend,
ich spiele gerade mit dem Verständnis zu try ... catch.
Dazu habe ich folgendes Problemchen kreiert. (JFrame mit JLabel, Jtxt, usw ...
Ein Benutzer möchte eine Datenmenge entweder auf CDs oder auf DVDs brennen. Die Auswahl trifft
er in eine JComboBox.
Als Meldung soll ausgegeben werden wie viele DVDs, bzw. CDs er benötigt.
Den Fall, dass der User keine Datenmenge eingibt wollte ich mit try ... catch abfangen.
Funktioniert aber nicht.
Hier der Quellcode, der ausgeführt werden sollte sobald der User den OK-Button drückt.
Ohne try / catch funktioniert es.
Ideen? :noe:
Gruß,
myjday
ich spiele gerade mit dem Verständnis zu try ... catch.
Dazu habe ich folgendes Problemchen kreiert. (JFrame mit JLabel, Jtxt, usw ...
Ein Benutzer möchte eine Datenmenge entweder auf CDs oder auf DVDs brennen. Die Auswahl trifft
er in eine JComboBox.
Als Meldung soll ausgegeben werden wie viele DVDs, bzw. CDs er benötigt.
Den Fall, dass der User keine Datenmenge eingibt wollte ich mit try ... catch abfangen.
Funktioniert aber nicht.
Hier der Quellcode, der ausgeführt werden sollte sobald der User den OK-Button drückt.
Java:
private JButton getJbtnOK() {
if (jbtnOK == null) {
jbtnOK = new JButton();
jbtnOK.setBounds(new Rectangle(192, 46, 60, 20));
jbtnOK.setText("OK");
jbtnOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// Start Eingabebereich
int kapazitaetDVD = 4700;
int kapazitaetCD = 700;
String datentraeger1 = "CDs";
String datentraeger2 = "DVDs";
String meldung = "Bitte wählen Sie zuerst ein Medium aus";
int speichermenge;
try {
speichermenge = Integer.parseInt(jtxtEingabe.getText());
} catch (NumberFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
meldung = "Sie haben keine Datenmenge eingegeben";
}
// Bestimmen der Ausgabe
if (jcbbDVDCDAuswahl.getSelectedIndex() == 1) {
if (berechneAnzahlDatentraeger(speichermenge,kapazitaetCD) == 1) {
datentraeger1 = "CD";
}
meldung = "Sie benötigen " + berechneAnzahlDatentraeger(speichermenge,kapazitaetCD);
meldung = meldung + " " + datentraeger1;
}
if (jcbbDVDCDAuswahl.getSelectedIndex() == 2) {
if (berechneAnzahlDatentraeger(speichermenge,kapazitaetDVD) == 1) {
datentraeger2 = "DVD";
}
meldung = "Sie benötigen "+ berechneAnzahlDatentraeger(speichermenge,kapazitaetDVD);
meldung = meldung + " " + datentraeger2;
}
jlblAnzeige.setText(meldung);
// Ende Eingabebereich
}
});
}
return jbtnOK;
}
public static int berechneAnzahlDatentraeger(int s, int k) {
int anzahl = s / k;
// Gibt es einen Rest?
if (s % k != 0) {
anzahl++;
}
return anzahl;
}
Ohne try / catch funktioniert es.
Ideen? :noe:
Gruß,
myjday