⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optpanecomparison.java

📁 java swing 开发代码
💻 JAVA
字号:
// OptPaneComparison.java// A quick utility class to help you see the differences between various// types of option panes, both via internal frames and using standalone// popups.//package	jswing.ch10;import javax.swing.*;import java.awt.event.*;import java.beans.*;public class OptPaneComparison extends JFrame {  protected JOptionPane optPane;  public static void main(String[] args) {    JFrame f = new OptPaneComparison("Enter your name");    f.setVisible(true);  }  public OptPaneComparison(final String message) {    setDefaultCloseOperation(EXIT_ON_CLOSE);    final int msgType = JOptionPane.QUESTION_MESSAGE;    final int optType = JOptionPane.OK_CANCEL_OPTION;    final String title = message;    setSize(350, 200);    // Create a desktop for internal frames    final JDesktopPane desk = new JDesktopPane();    setContentPane(desk);    // Add a simple menu bar    JMenuBar mb = new JMenuBar();    setJMenuBar(mb);    JMenu menu = new JMenu("Dialog");    JMenu imenu = new JMenu("Internal");    mb.add(menu);    mb.add(imenu);    final JMenuItem construct = new JMenuItem("Constructor");    final JMenuItem stat = new JMenuItem("Static Method");    final JMenuItem iconstruct = new JMenuItem("Constructor");    final JMenuItem istat = new JMenuItem("Static Method");    menu.add(construct);    menu.add(stat);    imenu.add(iconstruct);    imenu.add(istat);    // Create our JOptionPane.  We're asking for input, so we call setWantsInput.     // Note that we cannot specify this via constructor parameters.    optPane = new JOptionPane(message, msgType, optType);    optPane.setWantsInput(true);    // Add a listener for each menu item that will display the appropriate    // dialog/internal frame    construct.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent ev) {        // Create and display the dialog        JDialog d = optPane.createDialog(desk, title);        d.setVisible(true);        respond(getOptionPaneValue());      }    });    stat.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent ev) {        String s = JOptionPane.showInputDialog          (desk, message, title, msgType);        respond(s);      }    });    iconstruct.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent ev) {        // Create and display the dialog        JInternalFrame f = optPane.createInternalFrame(desk, title);        f.setVisible(true);        // Listen for the frame to close before getting the value from it.        f.addPropertyChangeListener(new PropertyChangeListener() {          public void propertyChange(PropertyChangeEvent ev) {            if ((ev.getPropertyName().equals            (JInternalFrame.IS_CLOSED_PROPERTY))            && (ev.getNewValue() == Boolean.TRUE)) {              respond(getOptionPaneValue());            }          }        });      }    });    istat.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent ev) {        String s = JOptionPane.showInternalInputDialog          (desk, message, title, msgType);        respond(s);      }    });  }  // This method gets the selected value from the option pane and resets the  // value to null so we can use it again.  protected String getOptionPaneValue() {    // Get the result . . .     Object o = optPane.getInputValue();    String s = "<Unknown>";    if (o != null)      s = (String)o;    Object val = optPane.getValue(); // which button?    // Check for cancel button or closed option    if (val != null) {      if (val instanceof Integer) {        int intVal = ((Integer)val).intValue();        if((intVal == JOptionPane.CANCEL_OPTION) ||           (intVal == JOptionPane.CLOSED_OPTION))          s = "<Cancel>";      }    }    // A little trick to clean the text field. It is only updated if    // the initial value gets changed. To do this, we'll set it to a    // dummy value ("X") and then clear it.    optPane.setValue("");    optPane.setInitialValue("X");    optPane.setInitialValue("");    return s;  }  protected void respond(String s) {    if (s == null)      System.out.println("Never mind.");    else      System.out.println("You entered: " + s);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -