package elte.java2_utikalauz5.swing; /** Swing dialógusok használata.
A felhasználói felület felül egy menüből, középen a dialógusdobozok eredményét naplózó komponensből, alul pedig az aktuális megjelenítési stílust megváltoztató gombokból áll. A menü segítségével kipróbálhatjuk a fájlbetöltési/mentési párbeszédablakokat, a színkiválasztási dialógusablakot, valamint a különböző üzenettípussal, illetve opciótípussal rendelkező dialógusdobozokat. @link.forrásfájl {@docRoot}/../data/swing/src DialogusTeszt.java @link.letöltés {@docRoot}/../data/swing DialogusTeszt.jar @since Java 2 Útikalauz programozóknak */ public class DialogusTeszt extends SwingTeszt { /** Verziószám. */ private final static long serialVersionUID = 15L; /** Indítás alkalmazásként. @param argumentumok Az indításkor megadott paraméterek. */ public static void main(String argumentumok[]) { new DialogusTeszt().init(argumentumok); } /** Applet leírása. @return A példaprogram leírása */ @Override public String getAppletInfo() { return "Dialógusok használatát bemutató tesztprogram"; } /** GUI felépítése */ @Override protected void felépít() { javax.swing.JMenuBar menüsor = new javax.swing.JMenuBar(); //menüfelépít setJMenuBar(menüsor); javax.swing.JMenu menü = new javax.swing.JMenu("Dialógusablakok"); menüsor.add(menü); javax.swing.JMenuItem menüpont = new javax.swing.JMenuItem( "fájlkiválasztás megnyitáshoz"); menü.add(menüpont); menüpont.setToolTipText("JFileChooser.showOpenDialog"); menüpont.setActionCommand("open"); menüpont.addActionListener(this); menüpont = new javax.swing.JMenuItem("fájlkiválasztás mentéshez"); menü.add(menüpont); menüpont.setToolTipText("JFileChooser.showSaveDialog"); menüpont.setActionCommand("save"); menüpont.addActionListener(this); menüpont = new javax.swing.JMenuItem("színkiválasztás"); menü.add(menüpont); menüpont.setToolTipText("JColorChooser.showDialog"); menüpont.setActionCommand("color"); menüpont.addActionListener(this); menü = new javax.swing.JMenu("Dialógusdobozok"); menü.setToolTipText("JOptionPane"); menüsor.add(menü); menüpont = new javax.swing.JMenuItem("jóváhagyó dialógusdoboz"); menü.add(menüpont); menüpont.setToolTipText("showConfirmDialog"); menüpont.setActionCommand("confirm"); menüpont.addActionListener(this); menüpont = new javax.swing.JMenuItem("beviteli dialógusdoboz"); menü.add(menüpont); menüpont.setToolTipText("showInputDialog"); menüpont.setActionCommand("input"); menüpont.addActionListener(this); menüpont = new javax.swing.JMenuItem("üzenet-dialógusdoboz"); menü.add(menüpont); menüpont.setToolTipText("showMessageDialog"); menüpont.setActionCommand("message"); menüpont.addActionListener(this); menüpont = new javax.swing.JMenuItem( "általános kiválasztó dialógusdoboz"); menü.add(menüpont); menüpont.setToolTipText("showOptionDialog"); menüpont.setActionCommand("option"); menüpont.addActionListener(this); menü.addSeparator(); javax.swing.ButtonGroup csoport = new javax.swing.ButtonGroup(); menüpont = new javax.swing.JRadioButtonMenuItem("hiba"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("ERROR_MESSAGE"); menüpont.setActionCommand("error"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("információ"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("INFORMATION_MESSAGE"); menüpont.setActionCommand("information"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("figyelmeztetés"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("WARNING_MESSAGE"); menüpont.setActionCommand("warning"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("kérdés"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("QUESTION_MESSAGE"); menüpont.setActionCommand("question"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("üzenet", true); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("PLAIN_MESSAGE"); menüpont.setActionCommand("plain"); menüpont.addActionListener(this); menü.addSeparator(); csoport = new javax.swing.ButtonGroup(); menüpont = new javax.swing.JRadioButtonMenuItem( "alapértelmezett gomb", true); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("DEFAULT_OPTION"); menüpont.setActionCommand("default"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("Igen-Nem gomb"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("YES_NO_OPTION"); menüpont.setActionCommand("yesno"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("Igen-Nem-Mégsem gomb"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("YES_NO_CANCEL_OPTION"); menüpont.setActionCommand("yesnocancel"); menüpont.addActionListener(this); menüpont = new javax.swing.JRadioButtonMenuItem("OK-Mégsem gomb"); csoport.add(menüpont); menü.add(menüpont); menüpont.setToolTipText("OK_CANCEL_OPTION"); menüpont.setActionCommand("okcancel"); menüpont.addActionListener(this); add(new javax.swing.JScrollPane(napló)); javax.swing.JPanel panel = new javax.swing.JPanel(); //vezérlőpanel panel.setPreferredSize(new java.awt.Dimension(550, 100)); add(panel, java.awt.BorderLayout.SOUTH); for (javax.swing.Action váltás : stílusváltások) panel.add(new javax.swing.JButton(váltás)); //stílusváltásgombok } /** Aktuális dialógus üzenettípusa */ private int üzenettípus = javax.swing.JOptionPane.PLAIN_MESSAGE; /** Aktuális dialógus opciótípusa */ private int opciótípus = javax.swing.JOptionPane.DEFAULT_OPTION; /** Aktuális dialógus típusa */ private String típus = "üzenet"; /** Kiválasztott menüpont feldolgozása. @param ae Menüpontkiválasztási esemény */ public void actionPerformed(java.awt.event.ActionEvent ae) { javax.swing.AbstractButton gomb = (javax.swing.AbstractButton)ae.getSource(); String[] üzenet = {típus, gomb.getText()}; if (ae.getActionCommand().equals("color")) { //színkiválasztás naplóz("Színkiválasztás."); java.awt.Color szín = javax.swing.JColorChooser.showDialog( getRootPane(), "Válasszon egy háttérszínt!", napló.getBackground()); if (szín==null) naplóz("Nem történt színkiválasztás."); else napló.setBackground(szín); } else if (ae.getActionCommand().equals("open")) { //fájlkiválasztás naplóz("Fájlkiválasztás megnyitáshoz."); //megnyitáshoz try { javax.swing.JFileChooser fájlkiválasztó = new javax.swing.JFileChooser(); int eredmény = fájlkiválasztó.showOpenDialog(getRootPane()); if (eredmény!=javax.swing.JFileChooser.APPROVE_OPTION) naplóz("Nem történt fájlkiválasztás."); else naplóz("Kiválasztott fájl: "+ fájlkiválasztó.getSelectedFile().getAbsolutePath()); } catch (Exception e) { //applet esetén előfordulhat naplóz("Nem engedélyezett a fájlkiválasztás!"); } } else if (ae.getActionCommand().equals("save")) { //fájlkiválasztás naplóz("Fájlkiválasztás mentéshez."); //mentéshez try { javax.swing.JFileChooser fájlkiválasztó = new javax.swing.JFileChooser(); int eredmény = fájlkiválasztó.showSaveDialog(getRootPane()); if (eredmény!=javax.swing.JFileChooser.APPROVE_OPTION) naplóz("Nem történt fájlkiválasztás."); else naplóz("Kiválasztott fájl: "+ fájlkiválasztó.getSelectedFile().getAbsolutePath()); } catch (Exception e) { //applet esetén előfordulhat naplóz("Nem engedélyezett a fájlkiválasztás!"); } } else if (ae.getActionCommand().equals("confirm")) { int válasz=javax.swing.JOptionPane.showConfirmDialog( getRootPane(), üzenet, gomb.getToolTipText(), opciótípus, üzenettípus); naplóz(gomb.getText()+" visszaadott értéke="+válasz); } else if (ae.getActionCommand().equals("input")) { //beviteli dialógus Object kezdetiopció = "kezdeti opció"; Object[] opciók = {kezdetiopció, "másik opció", "meg mégegy opció"}; Object válasz=javax.swing.JOptionPane.showInputDialog(getRootPane(), üzenet,gomb.getToolTipText(),üzenettípus,null,opciók,kezdetiopció); naplóz(gomb.getText()+" visszaadott értéke="+válasz); } else if (ae.getActionCommand().equals("message")) { //üzenet-dialógus javax.swing.JOptionPane.showMessageDialog(getRootPane(), üzenet, gomb.getToolTipText(), üzenettípus); naplóz(gomb.getText()); } else if (ae.getActionCommand().equals("option")) { //általános Object kezdetiopció = "kezdeti opció"; //kiválasztó dialógus Object[] opciók = {kezdetiopció, "másik opció", "meg mégegy opció"}; int válasz = javax.swing.JOptionPane.showOptionDialog(getRootPane(), üzenet, gomb.getToolTipText(), opciótípus, üzenettípus, null, opciók, kezdetiopció); naplóz(gomb.getText()+" visszaadott értéke="+válasz); } else if (ae.getActionCommand().equals("error")) { //üzenettípus=hiba üzenettípus = javax.swing.JOptionPane.ERROR_MESSAGE; típus = gomb.getText(); } else if (ae.getActionCommand().equals("information")) { //üzenettípus= üzenettípus=javax.swing.JOptionPane.INFORMATION_MESSAGE;//információ típus = gomb.getText(); } else if (ae.getActionCommand().equals("warning")) { //üzenettípus= üzenettípus=javax.swing.JOptionPane.WARNING_MESSAGE;//figyelmeztetés típus = gomb.getText(); } else if (ae.getActionCommand().equals("question")) { //üzenettípus= üzenettípus = javax.swing.JOptionPane.QUESTION_MESSAGE; //kérdés típus = gomb.getText(); } else if (ae.getActionCommand().equals("plain")) { //üzenettípus=üzenet üzenettípus = javax.swing.JOptionPane.PLAIN_MESSAGE; típus = gomb.getText(); } else if (ae.getActionCommand().equals("default")) { //opciótípus= opciótípus = javax.swing.JOptionPane.DEFAULT_OPTION;//alapértelmezés } else if (ae.getActionCommand().equals("yesno")) { //opciótípus= opciótípus = javax.swing.JOptionPane.YES_NO_OPTION; //Igen-Nem gomb } else if (ae.getActionCommand().equals("yesnocancel")) { //opciótípus= opciótípus=javax.swing.JOptionPane.YES_NO_CANCEL_OPTION;//I-N-Mégsem } else if (ae.getActionCommand().equals("okcancel")) { //opciótípus= opciótípus = javax.swing.JOptionPane.OK_CANCEL_OPTION; //OK-Mégsem } } }