Java Swing - Exemple avec JOptionPane showMessageDialog

Java Swing - Exemple de JOptionPane showMessageDialog

Ceci est un examen de la méthodeshowMessageDialog() de la classeJOptionPane. Cette méthode est un moyen rapide et facile d'informer l'utilisateur de quelque chose qui s'est passé. LesshowMessageDialog() peuvent être appelés en utilisant les combinaisons de paramètres suivantes:

Component, Object
Component, Object, String, int
Component, Object, String, int, Icon
  1. Composant - Le premier paramètre est un composant qui détermine le cadre dans lequel la boîte de dialogue est affichée; si nul, ou si leparentComponent n'a pas de trame, une trame par défaut est utilisée.

  2. Object - Le deuxième paramètre peut être n'importe quel objet. (In some older versions of Java you might get a compiler error when using primitive types directly).

  3. String - Le troisième paramètre est une chaîne placée comme titre de la fenêtre de dialogue de message.

  4. int - L'int qui suit la chaîne est leMessageType. Les différentsMessageTypes pourJOptionPane sont:

    • MESSAGE D'ERREUR

    • INFORMATION_MESSAGE

    • MESSAGE D'ALERTE

    • QUESTION_MESSAGE

    • PLAIN_MESSAGE

  5. Icône - Le dernier paramètre est unIcon qui s'affiche dans la boîte de dialogue et remplace l'icône par défautMessageType.

1. Composant et objet

La manière la plus simple d'utiliser la boîte de dialogue de message. Exemple avecComponent défini sur null et unString comme deuxième argument:

SimpleDialog1.java

package com.techfou.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog1 {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, "Simple Information Message");
    }

}

Sortie:

swing-dialog-1a

2. Composant, objet, chaîne et int

Ajout d'informations supplémentaires à la boîte de dialogue de message. Exemple avecComponent défini sur null et undouble comme deuxième paramètre:

SimpleDialog2a.java

package com.techfou.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog2a {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, 8.9, "This is not an integer.", JOptionPane.PLAIN_MESSAGE);
    }

}

Sortie:

swing-dialog-1b

Exemple de message d'erreur (Component défini sur null,String Object):

SimpleDialog2b.java

package com.example.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog2b {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, "Uh-oh!", "Error", JOptionPane.ERROR_MESSAGE);
    }

}

Sortie:

swing-dialog-1c

3. Composant, objet, chaîne, int et icône

Rendez votre boîte de dialogue «plus jolie». Exemple avecIcon récupéré à partir d'un répertoire:

SimpleDialog3a.java

package messageDialog;

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

public class SimpleDialog3a {

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");
        JOptionPane.showMessageDialog(null, "I like turtles.",
                "Customized Dialog", JOptionPane.INFORMATION_MESSAGE, icon);
    }

}

Sortie:

swing-dialog-1d

Exemple avecComponent défini sur aframe:

MessageDialogInFrame.java

package com.example.messageDialog;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.Color;

public class MessageDialogInFrame extends JFrame{

    public MessageDialogInFrame() {
        getContentPane().setBackground(Color.DARK_GRAY);
        setTitle("Message Dialog in Frame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setResizable(false);
        setSize(400, 300);
        getContentPane().setLayout(null);
    }

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");
        JOptionPane.showMessageDialog(new MessageDialogInFrame(),
                "I appear as part of the frame!!", "Customized Dialog",
                JOptionPane.INFORMATION_MESSAGE, icon);
    }

}

Sortie:

swing-dialog-1e

4. Un exemple plus avancé

Pour cet exemple, nous transmettons unJPanel comme paramètre Object. LeJPanel est personnalisé et a unJLabel ajouté. Nous manipulons également la taille desOptionPane en utilisant un appel àUIManager.

MessageDialogPanel.java

package com.example.messageDialog;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;

public class MessageDialogPanel {

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");

        JPanel panel = new JPanel();
        panel.setBackground(new Color(102, 205, 170));
        panel.setSize(new Dimension(200, 64));
        panel.setLayout(null);

        JLabel label = new JLabel("Turtles are awesome!!! :D");
        label.setBounds(0, 0, 200, 64);
        label.setFont(new Font("Arial", Font.BOLD, 11));
        label.setHorizontalAlignment(SwingConstants.CENTER);
        panel.add(label);

        UIManager.put("OptionPane.minimumSize",new Dimension(300, 120));
        JOptionPane.showMessageDialog(null, panel, "Customized Message Dialog", JOptionPane.PLAIN_MESSAGE, icon);
    }
}

Sortie:

swing-dialog-1f