Swing Meldung mit joptionpane information message

  • Themenstarter Themenstarter Grandezza
  • Beginndatum Beginndatum
G

Grandezza

Gast
Hallo und guten abend,

ich hab da mal eine Frage zu einem Projekt was ich gerade mache. Ich habe ein jTextField in das nur ganze Zahlen eingegeben
werden sollen. Wenn Buchstaben oder Kommazahlen eingegeben werden, soll ein Fenster erscheinen in dem die Meldung steht, das ganze Zahlen eingegeben werden sollen. Mit Klick auf einen Ok-Button soll dann dieses Fenster wieder verschwinden. Kann mir jemand erklären wie ich das anstelle. In der Vorlesung haben wir nur ganz kurz etwas mit jOptionPane und INFORMATION_MESSAGE oder so ähnlich behandelt, deswegen habe ich davon leider keine Ahnung.

vielen Dank schonmal und einen angenehmes Wochenende

Gruß Grandezza
 
Wie meinst du das? Diese Thema hab ich nicht verstanden. Was muss ich im GUI hinzufügen (NetBeans)? Es soll dann praktisch wenn zum Beispiel in dem Textfeld Buchstaben statt ganze Zahlen eingegeben werden und auf den Berechenen-Button geklickt wird, eine Meldung erscheinen.
 
Naja eig. reicht genau diese eine Zeile um einen kleinen Message-Dialog anzuzeigen!

Was ist jetzt GENAU deine Frage ? Du hast auf dem Berechnen-Button einen ActionListener registriert und in der actionPerformed prüfst du dann eben ob es Ganzzahlen sind, wenn nicht --> diese Zeile Code ???:L
 
und wo muss ich diese Zeile genau einfügen? Nach der Zeile wo das jTextField eingelesen wird?
 
Wenn du deine Werte aus dem Textfeld gezogen hast, willst du die doch auf Gültigkeit prüfen und danach, im Falle des Falles, eine entsprechende Fehlermeldung anzeigen, nicht wahr?
Und dieser Ablauf gibt dir doch schon vor, wo diese Zeile hingehört. Also was denkst du? 🙂
 
also nach dem das Textfeld eingelesen wurde. Aber wenn ich die Zeile einfüge, die eRaaaa geschrieben hat kommt die Fehlermeldung "parent is not public in java.awt.Component; cannot be accessed from outside package"
 
😀 das parent musst du natürlich ersetzen (sorry hätte ich vllt nochmal erwähnen sollen) ..testweise kannst du da auch mal [c]null[/c] eintragen, ansonsten auch mal die Links anschauen die ich oben schon gepostet habe ! Viele Beispiele, viel Text zum Lesen :toll:
 
Ok ich hab den von dir geposteten Link gelesen aber irgendwie habe ich das nicht verstanden. Kannst du mir erklären was parent ist und wie ich es wo setze? Sorry ich habe echt keinen Durchblick mehr. Ich sitze schon seit Tagen hier dran.
 
parent gibt an zu welcher Component der Dialog gehört. Das hat dann z.b. einfluss darauf wo der Dialog angezeigt wird.
 
bzw. wie kann lautet der Befehl mit dem ich prüfen kann, ob in dem Textfeld nur ganze Zahlen stehen?
 
Also nun sind wir ja schon fast soweit dass wir für dich die Hausaufgabe machen ?!
Java:
				if (!textfeld.getText().matches("\\d+")) {
					JOptionPane.showMessageDialog(null,"Bitte nur ganze Zahlen eingeben!","Falsche Eingabe", JOptionPane.INFORMATION_MESSAGE);
				}

z.B.
 
Vielen Dank für die Hilfe erstmal ich hab jetzt noch rumprobiert und jetzt stimmt fast alles. Jetzt kommt nur noch als einzige Fehlermeldung cannot find symbol variable INFORMATION_MESSAGE. Muss ich diese jetzt noch definieren?
 
ich hab das irgendwie umgeschrieben wie wir es in der Übung hatten aber da funktioniert trotzdem einiges nicht und ich weiß auch ehrlich gesagt nicht, wofür try, catch, throw new usw.

Java:
  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your// handling code here:
        // Konstanten

        
        final double film1=3;
        final double film2=3;
        final double film3=3;
        final double film4=2;
        final double film5=2;
        final double film6=2;
        final double film7=1;
        final double film8=1;
        final double film9=1;
       

        // Einfühung der Variablen
        double zeit, preis;

        preis=0;

try {        
        zeit=Double.parseDouble(jTextField1.getText()); // liest Zahl der eingegebenen Tage aus dem Textfeld
      


        // Eingabe beendet

        //Eingabeabsicherung
 if     (!jTextField1.getText().matches("\\d+"))
        throw new Exception ("Error1");

        // Berechnung
        if(jCheckBox1.isSelected()) // Prüft ob jRadiobutton1 ausgewählt ist
        preis=film1*zeit;
        if(jCheckBox2.isSelected())
        preis=preis +film2*zeit;
        if(jCheckBox3.isSelected())
        preis=preis +film3*zeit;
        if(jCheckBox4.isSelected())
        preis=preis +film4*zeit;
        if(jCheckBox5.isSelected())
        preis=preis +film5*zeit;
        if(jCheckBox6.isSelected())
        preis=preis +film6*zeit;
        if(jCheckBox7.isSelected())
        preis=preis +film7*zeit;
        if(jCheckBox8.isSelected())
        preis=preis +film8*zeit;
        if(jCheckBox9.isSelected())
        preis=preis +film9*zeit;
       
    }

catch  (NumberFormatException s) {
       JOptionPane msg = new JOptionPane ();
       JOptionPane.showMessageDialog (msg,"Bitte Zahlen eingeben!", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
    }

catch (Exception s) {
    JOptionPane msg = new JOptionPane ();
    if ((s.toString()).endsWith("Error1"))
            JOptionPane.showMessageDialog(msg, "Bitte Zahlen eingeben!", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
    else
        JOptionPane.showMessageDialog(msg, "Bitte Zahlen eingeben!", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
}


        // Ausgabe

        jTextField2.setText(df_0.format(preis));





    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        System.exit(0); // Programm beenden
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        // Felder löschen
        jTextField1.setText("");
        jTextField2.setText("");
    }                                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JCheckBox jCheckBox3;
    private javax.swing.JCheckBox jCheckBox4;
    private javax.swing.JCheckBox jCheckBox5;
    private javax.swing.JCheckBox jCheckBox6;
    private javax.swing.JCheckBox jCheckBox7;
    private javax.swing.JCheckBox jCheckBox8;
    private javax.swing.JCheckBox jCheckBox9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    // End of variables declaration                   

    //Formatierte Ausgabe
    DecimalFormat df_0 = new DecimalFormat ("###,##0.00 €" ); //Definieren des Formats
}
 
Naja, du hast ja gar keine imports ?

Java:
import java.text.DecimalFormat;
import javax.swing.JOptionPane;

oder eben JOptionPane durch javax.swing.JOptionPane ersetzen....
 
Danke für die schnelle Hilfe, aber was sind imports? oder was soll ich ersetzen? wir haben nicht mal die Hälfte von dem behandelt was bis jetzt in dem Programm steht. und kannst du erklären für das das throw new und catch steht? Fragen über Fragen ich weiß sorry
 
Hey cool ich hab's verstanden🙂 und jetzt funktioniert es.🙂 Vielen Dank für die geduldige Hilfe. Ich hab mehr gelernt als im bisherigen Semester. Super Forum

einen schönen Abend

Gruß Grandezza
 

Zurück
Oben