testminidialog.java

来自「Java the UML Way 书中所有源码」· Java 代码 · 共 82 行

JAVA
82
字号
/*

 * TestMinidialog.java  E.L. 2001-08-23

 *

 * Closing the dialog behaves as if the Ok button was pressed.

 */



import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



class MiniDialog extends JDialog {

  private boolean ok;

  private Container guiContainer;



  public MiniDialog(JFrame parent) {

    super(parent, "Minidialog", true);

    guiContainer = getContentPane();

    guiContainer.add(new JLabel(), BorderLayout.NORTH);

    guiContainer.add(new JLabel("Dialog Testing"), BorderLayout.CENTER);

    guiContainer.add(new ButtonPanel(), BorderLayout.SOUTH);

    pack();

  }



  private class ButtonPanel extends JPanel {

    public ButtonPanel() {

      ButtonListenerDialog buttonListener = new ButtonListenerDialog();



      JButton okButton = new JButton("OK");

      add(okButton);

      okButton.addActionListener(buttonListener);



      JButton cancelButton = new JButton("Cancel");

      add(cancelButton);

      cancelButton.addActionListener(buttonListener);

    }

  }



  private class ButtonListenerDialog implements ActionListener {

    public void actionPerformed(ActionEvent event) {

      String command = event.getActionCommand();

      if (command.equals("OK")) ok = true;

      else ok = false;

      setVisible(false);

    }

  }



  public boolean showDialog() {

    setVisible(true);

    return ok;

  }

}



class ParentWindow extends JFrame {

  private MiniDialog dialogBox = new MiniDialog(this);

  private Container guiContainer;



  public ParentWindow() {

    setTitle("Testing Dialogs");

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    guiContainer = getContentPane();

    guiContainer.setLayout(new FlowLayout());

    JButton button = new JButton("Press here!");

    guiContainer.add(button);

    ButtonListenerParent buttonListener = new ButtonListenerParent();

    button.addActionListener(buttonListener);

  }



  private class ButtonListenerParent implements ActionListener {

    public void actionPerformed(ActionEvent event) {

      if (dialogBox.showDialog()) System.out.println("OK pressed....");

      else System.out.println("Cancel pressed....");

    }

  }

}



class TestMiniDialog {

  static public void main(String[] args) {

    ParentWindow parentWindow = new ParentWindow();

    parentWindow.setSize(300, 200);

    parentWindow.setVisible(true);

  }

}

⌨️ 快捷键说明

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