showInputDialog anfängerfragen =D

jannis95

Neues Mitglied
Hallo Forum!

Wir lehrnen java in der schule und ich war eine woche lang krank... hab schon fast alles nachgeholt komm aber bei einem punkt nicht weiter.

Die Aufgabe ist:

Testen Sie eine eingegebene ganze Zahl ob sie durch 2,3 oder durch 5 teilbar ist und geben Sie eine entsprechende Information aus.
Wiederholen Sie die Eingabe solange bis der Benutzer keine weitere Zahl nehr eingeben möchte.

ok, so weit bin ich gekommen...
Code:
import javax.swing.JOptionPane;
/**
 * Write a description of class Teilbarkeit1 here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Teilbarkeit1{
   
    public static void main(String[] args){
        
        int zahl;

        boolean endlos = true; 
        
        while (endlos){ 
        
            zahl = Integer.parseInt(JOptionPane.showInputDialog("Dieses Programm stellt die Teilbarkeit von 2,3 oder 5 fest.","Bitte gib eine ganze Zahl ein"));

            if (zahl % 2 == 0){
                System.out.println ("Die eingegebene Zahl "+zahl+" ist dur 2 Teilbar!");
            }
        
            if (zahl % 3 == 0){
                System.out.println ("Die eingegebene Zahl "+zahl+" ist dur 3 Teilbar!");
            }
        
            if (zahl % 5 == 0){
                System.out.println ("Die eingegebene Zahl "+zahl+" ist dur 5 Teilbar!");
            }    
        
            if (zahl % 2 != 0 && zahl % 3 != 0 && zahl % 5 != 0){
                System.out.println ("Die eingegebene Zahl "+zahl+" ist weder durch 2 noch duch 3 oder 5 Teilbar!");
            }
            System.out.println ("");
        }
        System.exit(0);
    }
}

es funktioniert eingentlich soweit...

nun meine frage:
Gibt es eine Möglichkeit den Abbrechen Button bei der eingabe Umbennenen, das es "Keine weitere Zahl eingeben" heißt
Wenn nicht macht das auch nichts

Was noch viel wichtiger ist, wie stell ich es an, dass das programm beim drücken des buttons beendet wird.

Und eine dritte frage:
Wie kann ich eine fehlermedung ausgeben wenn kein gültiger wert eingegäben wird. z:B.: a oder 2.2
 

Arbon

Bekanntes Mitglied
Zu 1)
How to Make Dialogs (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Zu 2)
Ein InputDialog gibt null zurück, wenn abbrechen gedrückt wird. Dann mit break aus der Schleife springen

Zu 3)
Integer.parseInt wirft eine NumberFormatException, falls der Wert nicht konvertierbar ist. Die musst du mit try catch fangen und dann eine entsprechende Meldung ausgeben, z.B. mit JOptionPane.showMessageDialog(...);. Dann am besten mit continue die Schleife wiederholen lassen.
 

jannis95

Neues Mitglied
Hallo
alls erstes: DANKE hab glaub ich noch nie so schnell eine antwort in einem forum bekommen...
aber ich bekomms trotzdem nicht hin :-(

1.) es wird zwar eine Möglichkeit beschrieben aber ich bekomm das irgendwie nicht hin. dennen zuvollge müsste das so ähnlich aussehen:

Code:
options = {"OK", "Keine weitere Zahl eingäben"};
int zahl = Integer.parseInt(JOptionPane.showInputDialog(frame,
    "Dieses Programm stellt die Teilbarkeit von 2,3 oder 5 fest.?",
    "Bitte gib eine ganze Zahl ein",
    JOptionPane.YES_NO_OPTION,
    JOptionPane.QUESTION_MESSAGE,
    null,     //do not use a custom Icon
    options,  //the titles of buttons
    options[0]); //default button title

ich komm sonst gut mit java zurech... das JOption und so hab ich noch nicht ganz verstanden...

2.)Wie genau würde das ausehen?

3.) wie fang ich einen wert mit try catch

Bin noch ein ganschöner Anfänger...

Danke
 

Arbon

Bekanntes Mitglied
Ok grade nochmal nachgesehen, bei einem InputDialog ist es nicht möglich die Texte der Buttons zu ändern. Da musst du einen eigenen Dialog erstellen mittels dem showOptionDialog und um das benötigte Textfeld zur Eingabe musst du dich selbst kümmern.
Sieht dann so aus:
Java:
		while (true) {
			JTextField txt = new JTextField();
			String[] options = { "OK", "Keine weitere Zahl eingäben" };
			Object[] objects = { "Zahlen eingeben", txt };
			int ret = JOptionPane.showOptionDialog(this, objects, "Eingabe",
					JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
					null, options, null);
			if (ret != JOptionPane.OK_OPTION) {
				// abrechen gedrückt
				break;
			}
			String s = txt.getText();
			try {
				Integer.parseInt(s);
			} catch (NumberFormatException e) {
				// ungültige Zahl
				JOptionPane.showMessageDialog(this,
						"Ungültige Zahl eingegeben " + s);
				continue;
			}
		}

Das Abbrechen und die neue Eingabe bei einer ungültigen Zahl habe ich auch eingebaut. Mit einem InputDialog würde es ähnlich gehen:

Java:
			String s = JOptionPane.showInputDialog(this, "Zahlen eingeben");
			if (s == null) {
				// abrechen gedrückt
				break;
			}
			try {
				Integer.parseInt(s);
			} catch (NumberFormatException e) {
				// ungültige Zahl
				JOptionPane.showMessageDialog(this,
						"Ungültige Zahl eingegeben " + s);
				continue;
			}
Aber wie gesagt, die Texte der Buttons kannst du damit nicht beeinflussen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Input/Output zahl aus showInputDialog() Java Basics - Anfänger-Themen 25
S showinputdialog Java Basics - Anfänger-Themen 6
J while (eingabe == "0") eingabe = JOptionPane.showInputDialog("...") Java Basics - Anfänger-Themen 5
J Eingabewert übergeben und prüfen von showInputDialog Java Basics - Anfänger-Themen 4
M showInputDialog Java Basics - Anfänger-Themen 2
M Hilfe: JOptionPane.showInputDialog Java Basics - Anfänger-Themen 3
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
P JOptionPane.showInputDialog Java Basics - Anfänger-Themen 6
C Problem mit JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
G JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
S JOptionPane.showInputDialog nur ein OK Button Java Basics - Anfänger-Themen 3
N JOptionPane.showInputDialog gibt null zurück Java Basics - Anfänger-Themen 9
V JOP.showInputDialog Abbrechen Button, Exception abfangen Java Basics - Anfänger-Themen 2
N JOptionPane.showInputDialog Abbrechen abfragen Java Basics - Anfänger-Themen 5
L Problem mit JOptionPane.showInputDialog() Java Basics - Anfänger-Themen 2
J Einige Anfängerfragen (Datentypen, Wertebereich) Java Basics - Anfänger-Themen 11
M Anfängerfragen.... Java Basics - Anfänger-Themen 2
E Erste Schritte Verschiedene Anfängerfragen (Rekursion, Terminierung, Schleife, etc.) Java Basics - Anfänger-Themen 5
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
J Einige Anfängerfragen Java Basics - Anfänger-Themen 3
S Erste Schritte Einige Anfängerfragen Java Basics - Anfänger-Themen 5
B 2 Anfängerfragen zu JDK und javac Java Basics - Anfänger-Themen 4
M Sammlung von Anfängerfragen für mein erstes Programm Java Basics - Anfänger-Themen 15
M Anfängerfragen zu GUI Java Basics - Anfänger-Themen 2
F Anfängerfragen Java Basics - Anfänger-Themen 3
M Anfängerfragen zu Java Applets Java Basics - Anfänger-Themen 4
A 2 anfängerfragen Java Basics - Anfänger-Themen 5
T verschiedene Anfängerfragen Java Basics - Anfänger-Themen 20
N Anfängerfragen und Zugriff auf JTextField Java Basics - Anfänger-Themen 5
T Anfängerfragen von Takeru Java Basics - Anfänger-Themen 4
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
S Ein paar Anfängerfragen Java Basics - Anfänger-Themen 17
B Grobe Anfängerfragen Java Basics - Anfänger-Themen 2
1 Einige Anfängerfragen Java Basics - Anfänger-Themen 12
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
B Paar richtige Anfängerfragen Java Basics - Anfänger-Themen 7
J gui anfängerfragen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben