Hallo Zusammen,
bin was Java angeht noch ein Anfänger. Habe zum üben jetzt mehrere Tutorials gemacht bereits. Jetzt bin ich an einer Aufgabe von der Schule, bei der ein Gewicht und eine Kundenkategoire eingegeben werden und dann der Versandpreis berechnet wird. Klappt alles, bis auf die Ausgabe einer Fehlermeldung bei falsche Eingabe.
Bei der Methode btBerechnen.actionPerformed habe ich die Vermeidung von Falscheingaben durch einen Try Catch Lösung versucht. Leider gibt Eclipse immer einen Fehler bei showmessagedialog an
(Die Methode ShowMessage(String) ist für den Typ JOptionPane nicht definiert (undefined))
Das komische ist das ich die gleiche Lösung bereits bei einem anderen Programm verwendet habe und es dort funktioniert mit der Ausgabe einer Fehlermeldung. Auch mein Lehrer weiß nicht mehr weiter und meint das sei auf einen Fehler im JOptionPane zurückzuführen. Vielen Dank für eure HIlfe!
bin was Java angeht noch ein Anfänger. Habe zum üben jetzt mehrere Tutorials gemacht bereits. Jetzt bin ich an einer Aufgabe von der Schule, bei der ein Gewicht und eine Kundenkategoire eingegeben werden und dann der Versandpreis berechnet wird. Klappt alles, bis auf die Ausgabe einer Fehlermeldung bei falsche Eingabe.
Java:
package packet_j252;
import java.lang.Math;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class Haputfenster extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton btBerechnen = null;
private JButton btLöschen = null;
private JButton btBeenden = null;
private JTextField tfText1 = null;
private JTextField tfText2 = null;
private JTextField tfText3 = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
double mGewicht, mPorto;
int mKategorie;
/**
* This is the default constructor
*/
public Haputfenster() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(442, 337);
this.setContentPane(getJContentPane());
this.setTitle("Portorechner");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(33, 183, 109, 21));
jLabel2.setText("Porto in €");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(34, 21, 113, 20));
jLabel1.setText("Gewicht in Gramm");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(190, 22, 112, 20));
jLabel.setText("Kundenkategorie");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getBtBerechnen(), null);
jContentPane.add(getBtLöschen(), null);
jContentPane.add(getBtBeenden(), null);
jContentPane.add(getTfText1(), null);
jContentPane.add(getTfText2(), null);
jContentPane.add(getTfText3(), null);
jContentPane.add(jLabel, null);
jContentPane.add(jLabel1, null);
jContentPane.add(jLabel2, null);
}
return jContentPane;
}
/**
* This method initializes btBerechnen
*
* @return javax.swing.JButton
*/
private JButton getBtBerechnen() {
if (btBerechnen == null) {
btBerechnen = new JButton();
btBerechnen.setBounds(new Rectangle(19, 117, 389, 32));
btBerechnen.setText("Porto berechnen");
btBerechnen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
try
{
mGewicht=Double.parseDouble(tfText1.getText());
mKategorie=Integer.parseInt(tfText2.getText());
portoberechnen();
datenausgabe();
}
catch (NumberFormatException fehler)
{ JOptionPane.ShowMessage("Leider bestand die Eingabe nicht aus einer Zahl!");}
}
});
}
return btBerechnen;
}
/**
* This method initializes btLöschen
*
* @return javax.swing.JButton
*/
private JButton getBtLöschen() {
if (btLöschen == null) {
btLöschen = new JButton();
btLöschen.setBounds(new Rectangle(273, 205, 127, 34));
btLöschen.setText("Felder löschen");
btLöschen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
datenlöschen();
}
});
}
return btLöschen;
}
void datenlöschen()
{
tfText1.setText("");
tfText2.setText("");
tfText3.setText("");
}
void portoberechnen()
{{ if(mKategorie == 1)
{ mPorto = mGewicht * 0.08;
}
else if((mKategorie == 2))
{ mPorto = mGewicht * 0.06;
}
else if((mKategorie == 3))
{ mPorto = mGewicht * 0.049;
}
else
{ mPorto = mGewicht * 0.035;}}
}
void datenausgabe()
{Double.toString(mPorto);
tfText3.setText(Double.toString(mPorto));
btLöschen.requestFocus(); }
/**
* This method initializes btBeenden
*
* @return javax.swing.JButton
*/
private JButton getBtBeenden() {
if (btBeenden == null) {
btBeenden = new JButton();
btBeenden.setBounds(new Rectangle(271, 246, 131, 34));
btBeenden.setText("Beenden");
btBeenden.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
System.exit(0);
}
});
}
return btBeenden;
}
/**
* This method initializes tfText1
*
* @return javax.swing.JTextField
*/
private JTextField getTfText1() {
if (tfText1 == null) {
tfText1 = new JTextField();
tfText1.setBounds(new Rectangle(33, 42, 115, 32));
}
return tfText1;
}
/**
* This method initializes tfText2
*
* @return javax.swing.JTextField
*/
private JTextField getTfText2() {
if (tfText2 == null) {
tfText2 = new JTextField();
tfText2.setBounds(new Rectangle(190, 43, 113, 32));
}
return tfText2;
}
/**
* This method initializes tfText3
*
* @return javax.swing.JTextField
*/
private JTextField getTfText3() {
if (tfText3 == null) {
tfText3 = new JTextField();
tfText3.setBounds(new Rectangle(32, 205, 111, 34));
}
return tfText3;
}
} // @jve:decl-index=0:visual-constraint="20,-6"
Bei der Methode btBerechnen.actionPerformed habe ich die Vermeidung von Falscheingaben durch einen Try Catch Lösung versucht. Leider gibt Eclipse immer einen Fehler bei showmessagedialog an
(Die Methode ShowMessage(String) ist für den Typ JOptionPane nicht definiert (undefined))
Das komische ist das ich die gleiche Lösung bereits bei einem anderen Programm verwendet habe und es dort funktioniert mit der Ausgabe einer Fehlermeldung. Auch mein Lehrer weiß nicht mehr weiter und meint das sei auf einen Fehler im JOptionPane zurückzuführen. Vielen Dank für eure HIlfe!