Wie kann man ein einfaches Eingabefenster in der Art eines JavaScript 'prompt()' erzeugen?

Eingabefenster lassen sich mit Hilfe der swing-Klasse JOptionPane erzeugen.

In der einfachsten Form stellt die Klasse die mehrfach überladene Methode showInputDialog() bereit, mit der das gewünschte Fenster erzeugt und wunschgemäß konfiguriert werden kann.

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class EingabefensterClass {

    public static void main(String[] args) {
        JOptionPane.showInputDialog(null, "Bitte etwas eingeben");

        Object[] obj={"Bananen","Birnen","Kirschen"}; 
        ImageIcon icon = new ImageIcon("bild.jpg");
        Object antwort = JOptionPane.showInputDialog(null, "Obst gewünscht?", "Eingabefenster",
                JOptionPane.INFORMATION_MESSAGE, icon, obj,"Birnen");

        if (antwort.equals("Bananen")) {
            System.out.println("Alles Banane!");
        } else if (antwort.equals("Birnen")) {
            System.out.println("Birne!");
        } else if (antwort.equals("Kirschen")) {
            System.out.println("Kirschen bitte!");
        }
    }
}

Das Beispiel zeigt zwei mit dieser Methode erzeugte, sich nacheinander öffnende Eingabefenster und demonstriert deren Konfigurationsmöglichkeiten.
Der erste Parameter enthält in jedem Fall eine Referenz auf das Elternfenster des Dialogs. Er kann auch null sein. Mit dem zweiten wird der String der Meldung/Frage übergeben.
Die zweite Variante der Methode weist im Einzelnen die folgenden Parameter auf:

Wie beim Meldungsfenster auch stehen fünf verschiedene Meldungstypen zur Verfügung, die bei Verwendung der ersten Methodenversion jeweils einen Standard-Fenstertitel und ein Standard-Icon liefern:

Zur Auswahl kann ein Array von Objekten übergeben werden, dessen Vorbelegung im letzten Parameter angegeben wird. Es wird in Form eines Dropdown-Menus dargestellt.
Die statische Methode gibt ein Objekt (hier einen String) zurück, das auf konventionelle Weise abgefragt und ausgewertet werden kann.