Input Dialog Problem

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Eine sehr simple Frage dessen Lösung wohl sehr einfach sein müsste:

Ich bin in Java beim Swing auf den JOptionPane gekommen und hab bislang zum anzeigen eines Textes folgendes benutzt:



Code:
String input = JOptionPane.showInputDialog(null,"Hier Text eingeben:");
           schreibe(input);

Nun möchte ich es so verwenden das mein anstatt einen String dann "nur" irgend einen beliebigen integer Wert ...12, 155 etc. eingeben kann ...wie wäre dies hierbei zu realisieren ? ???:L
 
Du kannst dem JOptionPane auch eine Component übergeben, z.B. ein JSpinner der nur Integer-Werte akzeptiert.

Ich glaub, das müsste mit einem MessageDialog funktionieren.
 
ah ! Wie erfolgt diese Übergabe ...gibt es dabei etwas besonderes zu beachten ?
 
Ist es nicht möglich einfach

Code:
int r = JOptionPane.showInputDialog(null,"Hier Text eingeben:");
           zeichneKreis(r);

zu erstellen ....das er einen Integer Wert aufnimmt und dieser dann gleich dem Radius r des Kreises ist der gezeichnet werden soll ?

Hauptziel ist es das bei der Eingabe in dem Input Dialog nachher der eingegebene wert x gleich dem Radius des Kreises ist den er dann zeichnet
 
Du kannst auch ne Schleife drum machen:

Code:
int r = -1;
boolean b = true;
while (b) {
  try {
    Strings s = JOptionPane.showInputDialog(null,"Hier Text eingeben:");
    r = Integer.parseInt(s);
    b = false;
  } catch( NumberFormatException e ) {
  }
}
zeichneKreis(r);
 
Also geht der Weg den ich angepeilt hatte nicht bzw. nicht in der einfachen Form ?
 
was verstehst du unter einfach?
nimm benis lösungsweg: eigene component bauen mit JSpinenr drauf und übergib die der showMessageDialog methode.
 
Ich hab eine Alternative gefunden ...dabei war die komische Denkansatz den ich ganz am Anfang hatte auch der, der am Ende funktioniert hat

Code:
String input = JOptionPane.showInputDialog("Hier Radiusgroesse eingeben:");  // normaler Eingabedialog

      int num = Integer.parseInt(input);                         //anstatt String wird somit hier ein Integer Wert zugewiesen
      meinStift.zeichneKreis(num);                                // Kreis nimmt den Integer Wert und erfasst ihn als Radius

Trotzdem Danke für all die Hinweise die kamen, die haben mir neue anregungen gegeben [schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Danke[/schild]
 
Anonymous hat gesagt.:
Ich hab eine Alternative gefunden ...dabei war die komische Denkansatz den ich ganz am Anfang hatte auch der, der am Ende funktioniert hat

Code:
String input = JOptionPane.showInputDialog("Hier Radiusgroesse eingeben:");  // normaler Eingabedialog

      int num = Integer.parseInt(input);                         //anstatt String wird somit hier ein Integer Wert zugewiesen
      meinStift.zeichneKreis(num);                                // Kreis nimmt den Integer Wert und erfasst ihn als Radius

Trotzdem Danke für all die Hinweise die kamen, die haben mir neue anregungen gegeben [schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Danke[/schild]
das hat sky80 doch shcon geschrieben :?
 
yapp *Wald vor lauter Bäumen nicht seh* ...doch ohne Schleife - wobei die Schleife mich die schleife von sky80 auf ne Idee bringt 😀
 
Anonymous hat gesagt.:
Ich hab eine Alternative gefunden ...dabei war die komische Denkansatz den ich ganz am Anfang hatte auch der, der am Ende funktioniert hat

Code:
String input = JOptionPane.showInputDialog("Hier Radiusgroesse eingeben:");  // normaler Eingabedialog

      int num = Integer.parseInt(input);                         //anstatt String wird somit hier ein Integer Wert zugewiesen
      meinStift.zeichneKreis(num);                                // Kreis nimmt den Integer Wert und erfasst ihn als Radius

Trotzdem Danke für all die Hinweise die kamen, die haben mir neue anregungen gegeben [schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Danke[/schild]

Damit ist aber deine oben beschriebene Anforderung:
Anonymous hat gesagt.:
Nun möchte ich es so verwenden das mein anstatt einen String dann "nur" irgend einen beliebigen integer Wert ...12, 155 etc. eingeben kann ...wie wäre dies hierbei zu realisieren ? ???:L
nicht im geringsten erfüllt. Wenn der Benutzer nun "eins" oder "abc" eingibt so fliegt eine Exception und in deiner Variablen num ist kein integer Wert enthalten!!!

<klugscheiß>
P.S.: Es ist bei der Entwicklung von SW ganz wichtig, eine Anforderung klar und unmißverständlich zu formulieren. Es muss alles eindeutig beschrieben sein und es darf kein Spielraum für Interpretationen geben. (Dies sollte auch in einem Forum gelten, wo die Leute zufällig keine Ahnung haben, was der Fragesteller womöglich wirklich will).

P.P.S.: Ich muss zugeben, dass ich ein großer Anteil meiner Tätigkeit als SW-Entwickler darin besteht Anforderung zu analysieren.
</klugscheiß>
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben