Popup in Swing

kpvonnichts

Mitglied
Hallo,

ich habe ein recht simple Frage zum Erstellen eines Popups in Swing. Und zwar möchte ich mit dem Drücken eines Buttons ein Popup erstellen, in dem es ein Feld gibt, wo man eine Zahl eingeben kann, und einen Knopf, mit dem man diese Zahl abrufen kann. Ich komme da nicht so wirklich weiter, weiß nämlich nicht, wie ich das mit dem Abfragen des Inhaltes vom JNumberField mache und wie ich da noch einen Button in das Popup integriere (mache sowas jetzt zum ersten mal).

Java:
  public void knopf_ActionPerformed(ActionEvent evt) {
      Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (d.width - getSize().width) / 2;
      int y = (d.height - getSize().height) / 2;
      PopupFactory factory = PopupFactory.getSharedInstance();
      popup = factory.getPopup(new JFrame(), new JNumberField(), x, y);
      popup.show();
 
Zuletzt bearbeitet:

kpvonnichts

Mitglied
Hallo,

danke erstmal für die schnelle Antwort. Mit JOptionPane habe ich mich noch nicht auseinandergesetzt, kennst Du da evtl. ein gutes Tutorial zu?

Edit: Hoppla, Du hast ja was verlinkt. Dankeschön, werde ich nachher mal versuchen.

Java:
String s = javax.swing.JOptionPane.showInputDialog( "Gib hier die Zahl ein" );
int i = Integer.parseInt( s );

Verstehe ich das richtig, man wird damit zu einer Zahleingabe aufgefordert und der String s wird dann in ein int umgewandelt? Und muss ich das überhaupt in das Popup integrieren oder ist dieses showInputDialog an sich schon ein Popup?
 
Zuletzt bearbeitet:

turing

Mitglied
showInputDialog(...) öffnet den Dialog, der blockiert, bis man dort auf OK oder Abbrechen gedrückt hat. Die Eingabe (oder null) kommt als String zurück und wird in s gespiechert. Dieser wird dann in einen int umgewandelt. Wenn es nicht klappt (Benutzer gibt irgendeine Zeichenkette ein), dann knallt's... Sollte natürlich abgefangen werden.
 

kpvonnichts

Mitglied
OK... habe jetzt nur noch ein Problem:
Java:
  public void knopf_ActionPerformed(ActionEvent evt) {
      String nummer = javax.swing.JOptionPane.showInputDialog( "Gib hier die Zahl ein" );
      int zahl= Integer.parseInt( nummer );
      Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (d.width - getSize().width) / 2;
      int y = (d.height - getSize().height) / 2;
      PopupFactory factory = PopupFactory.getSharedInstance();
      popup = factory.getPopup(new JFrame(), new JTextArea(this.zahlen.zeigeZahl(zahl)), x, y);
      popup.show();

Bekomme die Fehlermeldung "void type not allowed here" in Zeile 8 bei "zahlen.zeigeZahl[...]". Hier der entsprechende Code in der Klasse Zahlen:

Java:
public void zeigeZahl(int zahl)
    {
        if(zahl < 0) {
        }
        else if(zahl< anzahlZahlen()) {
            System.out.println( zahlen.get(zahl));
        }
        else {
        }
    }

Ich habe schon versucht, das in ein int umzuwandeln und zahlen.get(zahl) dann mit return auszugeben, hat aber nicht geklappt.
@turing: Hast Du gerade eine Idee, wie ich das Eingeben von Zeichen, die keine Zahlen sind, unterbinden kann?
 
Zuletzt bearbeitet:

turing

Mitglied
Was sollt deine Methode zeigeZahl machen? Bisher machst Sie nur eine Ausgabe auf die Konsole, doch verwendest sie als ein Argument in einem Konstruktor, wo ein String erwartet wird. Dann muss sie wohl auch eine String ->zurückgeben, damit dsa funktioniert.

Ich vermute (!) mal, ohne eine Ahnung zu haben, was "zahlen" bei Dir genau ist, dass Du den ausgebenen Text als Zeichenkette zurückgeben möchtest bzw. einen Leerstring, wenn die entsprechende Bedingung nicht eintritt. Unter Berücksichtigung der unötigen If-Else-Verschachtelungen:

Java:
public String zeigeZahl(int zahl) {
  if(zahl >= 0 && zahl < anzahlZahlen()) {
    return Integer.toString(zahlen.get(zahl)));
  } else {
    return "";
  }
}

Aber wie gesagt, nur Spekulationen, weil ich Dein restliches Programm nicht kenne.
 

kpvonnichts

Mitglied
"zahlen" sind im Prinzip keine zahlen, sondern eine Arraylist (private ArrayList<String> zahlen; ). Jetzt soll eben ein Element davon (zahlen.get(zahl) ) ausgegeben werden.
Sorry, ich habe nicht ganz verstanden, was Dein Code bewirken soll. Kannst Du mir das bitte nochmal erklären?
 
Zuletzt bearbeitet:

turing

Mitglied
..."this.zahlen.zeigeZahl(zahl)"...

wird dann aber wohl verkehrt sein, da zeigeZahl bestimmt nicht eine Methode in Deiner ArrayList ist, sondern vermutlich in der Klasse, in der Du dich zum Zeitpunkt des Aufrufes befindet. Also:

..."this.zeigeZahl(zahl)"...
(auch ohne this an dieser Stelle)

Ich habe deine Methode abgeändert, so dass sie einen Wert (String) zurückgibt.
 

kpvonnichts

Mitglied
Doch doch, zeigeZahl(int zahl) ist eine Methode in der Klasse mit der ArrayList. Die möchte ich ganz einfach im GUI ausführen, indem man eingibt, welche Zahl man angezeigt bekommen möchte. Der Wurm ist hier drin:
Java:
popup = factory.getPopup(new JFrame(), new JTextArea(this.zahlen.zeigeZahl(zahl)), x, y);
Wie gesagt, da steht void not allowed here.

Habe versucht, Deine Methode einzubauen. Vielen Dank aufjedenfall schonmal. Jetzt ist nur das Problem, dass er toString nicht findet. Was muss ich dafür importieren?
 
Zuletzt bearbeitet:

turing

Mitglied
Wenn es String s sind in der ArrayList brauchst du natürlich nicht mit toString umzunwandeln. Hatte gedacht, es wären Integer. Also dann einfach:

Java:
public String zeigeZahl(int zahl) {
  if(zahl >= 0 && zahl < anzahlZahlen()) {
    return zahlen.get(zahl);
  } else {
    return "";
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J GUI Programmierung Popup-Menü AWT, Swing, JavaFX & SWT 4
T Maximieren des Application-Modal Popup-Dialoges+Parent AWT, Swing, JavaFX & SWT 1
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
F Popup Menu etwas verschieben AWT, Swing, JavaFX & SWT 2
T Swing Combox Popup vergroessert - Arrow nicht mehr vorhanden! AWT, Swing, JavaFX & SWT 4
X Popup Menü nur bei besonderem Fall öffnen AWT, Swing, JavaFX & SWT 3
B Popup auf der Textcoursor-Position AWT, Swing, JavaFX & SWT 5
B Swing Submenüs im Popup anzeigen AWT, Swing, JavaFX & SWT 2
T Popup Fenster AWT, Swing, JavaFX & SWT 2
B Ladebalken in einem Popup-Fenster AWT, Swing, JavaFX & SWT 6
Kenan89 PopUp Fenster AWT, Swing, JavaFX & SWT 4
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
B popup in jtable AWT, Swing, JavaFX & SWT 4
C JComboBox Popup nicht öffnen AWT, Swing, JavaFX & SWT 4
O Info Popup AWT, Swing, JavaFX & SWT 9
T JTable, Popup Fester per Rechtsklick auf Zelle AWT, Swing, JavaFX & SWT 19
W Java Popup bei Win7 und Mac verschieden? AWT, Swing, JavaFX & SWT 2
Eldorado Swing Popup-Menü mit Jspinner AWT, Swing, JavaFX & SWT 4
M Swing JSlider, Popup-Box AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
lumo SWT CellEditor & Popup AWT, Swing, JavaFX & SWT 3
data89 PopUp-Panel bauen - aber wie? AWT, Swing, JavaFX & SWT 2
S Swing PopUp oeffnet sich nach der Methode, die erst nach Fensteraufruf gestartet wird AWT, Swing, JavaFX & SWT 3
aze JTable in Popup.Problem mit DefaultTableCellRenderer AWT, Swing, JavaFX & SWT 9
N rechtsklick und popup setlocation AWT, Swing, JavaFX & SWT 2
C Swing JComboBox Popup sperren AWT, Swing, JavaFX & SWT 8
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
SebSnake Popup-JFrame soll Daten an Parent-JFrame übergeben AWT, Swing, JavaFX & SWT 3
T Button des Popup-Menüs ermitteln AWT, Swing, JavaFX & SWT 4
T JComboBox nur mit Popup AWT, Swing, JavaFX & SWT 4
F Applet und Popup AWT, Swing, JavaFX & SWT 4
G Popup eines Bildes im JTable realisieren AWT, Swing, JavaFX & SWT 3
T Mouse Popup AWT, Swing, JavaFX & SWT 2
H PopUp-Fenster in einer Java Server Faces Anwendung AWT, Swing, JavaFX & SWT 4
J Popup an Cursorstelle anzeigen AWT, Swing, JavaFX & SWT 3
G Popup springt nicht in der Naehe des Klicks auf AWT, Swing, JavaFX & SWT 3
L Popup-Menu AWT, Swing, JavaFX & SWT 2
G Funktion für PopUp Menü AWT, Swing, JavaFX & SWT 32
I Popup-Trigger-Maustaste gleich beim Programmstart ermitteln? AWT, Swing, JavaFX & SWT 7
M JComboBox Popup öffnet nicht AWT, Swing, JavaFX & SWT 6
Q Popup der JComboBox AWT, Swing, JavaFX & SWT 4
S PopUp in JTable / JScrollPane AWT, Swing, JavaFX & SWT 3
S Popup auf Grafik AWT, Swing, JavaFX & SWT 18
K Popup Deluxe (Transparentes Popup)! AWT, Swing, JavaFX & SWT 8
T Popup-Menü unter Linux AWT, Swing, JavaFX & SWT 2
B Nicht rechteckige Popup Komponente AWT, Swing, JavaFX & SWT 4
Paule Popup oder Dialog-Feld mit eigenem Inhalt AWT, Swing, JavaFX & SWT 9
G Problem mit Kontextmenu(Popup Menü) AWT, Swing, JavaFX & SWT 3
A Image im Popup-Fenster AWT, Swing, JavaFX & SWT 12
K JTable als Popup in einer JComboBox? AWT, Swing, JavaFX & SWT 3
XWing Jave swing overly benutzten. AWT, Swing, JavaFX & SWT 3
J Anzeige ID und Markierung für Knoten in Eclipse & Swing AWT, Swing, JavaFX & SWT 4
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen


Oben