~Java4Beginners~
~Java4Beginners~

JOptionPane

JOptionPane dient als Pop-Up-Fenster, welches hauptsächlich als Hinweisfenster oder Fehlermeldungsfenster dient. Aktionen wie: Wollen Sie wirklich ohne speichern schließen oder ähnliches können mit JOptionPane verwirklicht werden.

Von JOptionPane müssen wir kein Objekt erzeugen, sondern es werden uns statische Methoden mit unterschiedlichen Parametern vorgegeben, die wir in unseren Programmen nutzen können.

Folgende Parameter können in den Methoden vorkommen.
  • parentComponent c (Aufrufender Frame oder Dialog wird modal gesetzt)
  • MessageObjekt mt(Message-Typ)
  • String title (Titelzeilentext)
  • int OptionType (Option-Typ)
  • int MessageType (Message-Typ)
  • Icon icon (eigenes Icon)
  • Objekt[] selectionValues (Array mit Auswahlobjekten)
  • Objekt initialSelectionValue (Vorausgewählter Auswahlwert aus selectionValues)
Methode Erklärung
showConfirmDialog() Öffnet ein Dialogfenster mit den Schlatflächen Ja, Nein und Abbrechen und einem Fragezeichen als Icon.
showInputDialog() Öffnet ein Eingabefenster mit einer Textzeile, einem Fragezeichen als Icon und den Schaltflächen OK und Abbrechen.
showMessageDialog() Öffnet ein Dialogfenster mit einem Ausrufezeichen als Icon und der Schaltfläche OK.
showOptionDialog() Mit dieser Methode können wir uns ein Auswahlfenster mit vorgegebenen Auswahlbuttons öffnen.

Message-Types

Bei den Fenstern haben wir die Möglichkeit einen Message-Typ anzugeben. Hiermit geben wir an, welches Icon im Fenster angezeigt wird.
Message-Typ Beschreibung
ERROR_MESSAGE Der Message-Typ ERROR_MESSAGE steht für Fehlermeldung. Als Icon erscheint in der Regel ein rotes X.
INFORMATION_MESSAGE Dieser Message-Typ dient der einfachen Information und trägt ein kleines i als Icon.
WARNING_MESSAGE Der als Warnmeldung gedacht Message-Typ gibt als Icon ein Ausrufezeichen im gelben Dreieck aus.
QUESTION_MESSAGE Als Icon erscheint hier ein Fragezeichen. Gedacht ist dieser Message-Typ als Nachfragemeldung.
PLAIN_MESSAGE Dieser Message-Typ gibt kein Item aus und dient als einfache Textmeldung an den Anwender.
Neben den Icons können wir auch Einfluss auf die angebotenen Schaltflächen nehmen. Dieses passiert über den Option-Type.

Option Type

Option-Type Beschreibung
DEFAULT_OPTION Stellt die OK-Schaltfläche zur Verfügung.
YES_NO_OPTION Die Schaltflächen JA und NEIN werden mit diesem Option-Type zur Verfügung gestellt.
YES_NO_CANCEL_OPTION JA, NEIN und ABBRECHEN sind die Schaltflächen, die mit diesem Option-Type verfügbar werden.
OK_CANCEL_OPTION Wie der Name schon vermuten lässt, werden durch diesen Option-Type die Schaltflächen OK und ABBRECHEN zur Verfügung gestellt.

Rückgabewerte

Es muss auf die verschiedenen Schaltflächen reagiert werden. Hierfür stellt uns JOptionPane einige Konstanten zur Verfügung, um Schaltflächenaktionen auszuwerten.
Konstante Beschreibung
YES_OPTION Ja-Schaltfläche wurde betätigt.
NO_OPTION Schaltfläche Nein wurde betätigt.
CANCEL_OPTION Der Anwender hat die Schaltfläche Abbrechen betätigt.
OK_OPTION OK-Schaltfläche wurde betätigt.
CLOSED_OPTION Das JOptionPane wurde geschlossen, ohne eine Option zu wählen.

Eigene Icons festlegen

Um eigene Icons verwenden zu können, müssen wir als erstes ein neues ImageIcon erzeugen und diesem den Speicherpfad zur Bilddatei zu übergeben. Natürlich darf der Import der Klasse nicht vergessen werden. (import javax.swing.ImageIcon;

ImageIcon icon = new ImageIcon("MB.jpg");

Nun können wir dieses ImageIcon den JOptionPane in den dazugehörigen Methoden übergeben.

showConfirmDialog

Dieser Methode können verschiedene Parameter übergeben werden, welche das Aussagen des JOptionPane beeinflussen.
Parameterliste Beispiel
showConfirmDialog(Component, message)

showConfirmDialog(Component, message, title, optionType)

showConfirmDialog(Component, message, title, optionType, message-type)

showConfirmDialog(Component, message, title, optionType, message-type, icon)

showInputDialog

Nachdem die einzelnen Komponenten mit der vorherigen Methode quelltexttechnisch gezeigt wurden, werde ich ab jetzt nur noch die verschiedenen Parameter-Möglichkeiten zeigen.
  • showInputDialog(Component, message)
  • shwoInputDialog(Component, message, initialSelectionValue)
  • showInputDialog(Component, message, title, message-type)
  • showInputDialog(Component, message, title, Message-type, icon, selectionValues, initialSelectionValue)
  • showInputDialog(message)
  • showInputDialog(message, initialSelectionValue)

showMessageDialog

  • showMessageDialog(Component, message)
  • showMessageDialog(Component, message, title, Message-Type)
  • showMessageDialog(Component, message, title, Message-Type, icon)

showOptionDialog

Diese Methode hat nur eine Parameterauswahl.

showOptionDialog(Component, message, title, Option-Type, Message-Type, icon, selectionValues, initialSelectionValue)

Beispielprogramm


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 * Beispielprogramm für JOptionPane
 * @author Markus Badzura
 */
public class OptionFenster 
{
    public static void main(String[] args) 
    {
        JFrame f = new JFrame();
        f.setTitle("Beispiel JOptionPane");
        f.setSize(500,500);
        f.setLayout(null);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton b1 = new JButton("JOptionPane öffnen");
        b1.setBounds(20,20,150,25);
        f.add(b1);
        f.setVisible(true);
        
        b1.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) 
            {
               int auswahl = JOptionPane.showConfirmDialog(f, "Beispiel JOptionPane",
                       "Button drücken",JOptionPane.YES_NO_CANCEL_OPTION);
               switch (auswahl)
               {
                   case JOptionPane.YES_OPTION:
                       System.out.println("Ja-Button wurde gedrückt.");
                       break;
                   case JOptionPane.NO_OPTION:
                       System.out.println("Nein-Button wurde gedrückt.");
                       break;
                   case JOptionPane.CANCEL_OPTION:
                       System.out.println("Abbrechen-Button wurde gedrückt");
                       break;
                   case JOptionPane.CLOSED_OPTION:
                       System.out.println("Es wurde kein Button gedrückt.");
                       break;
                   default:
                       System.out.println("Es konnte keine Aktion ermittelt werden.");
               }
            }        
        });
    }
}
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-05-18