JOptionPane

优质
小牛编辑
133浏览
2023-12-01

介绍 (Introduction)

JOptionPane类是一个组件,它提供标准方法来弹出值的标准对话框或通知用户某些内容。

Class 声明 (Class Declaration)

以下是javax.swing.JOptionPane类的声明 -

public class JOptionPane
   extends JComponent
      implements Accessible

字段 (Field)

以下是javax.swing.JOptionPane类的字段 -

  • static int CANCEL_OPTION - 如果选择CANCEL,则返回类方法的返回值。

  • static int CLOSED_OPTION - 如果用户在没有选择任何内容的情况下关闭窗口,则返回类方法的值,这很可能会被视为CANCEL_OPTION或NO_OPTION。

  • static int DEFAULT_OPTION - 类型含义Look and Feel不应提供任何选项仅使用JOptionPane中的选项。

  • static int ERROR_MESSAGE - 用于错误消息。

  • protected Icon icon - 窗格中使用的protected Icon icon

  • static string ICON_PROPERTY - 图标的绑定属性名称。

  • static int INFORMATION_MESSAGE - 用于信息消息。

  • static string INITIAL_SELECTION_VALUE_PROPERTY - initialSelectionValue的绑定属性名称。

  • static string INITIAL_VALUE_PROPERTY - initialValue的绑定属性名称。

  • protected Object initialSelectionValue - 要在selectionValues中选择的初始值。

  • protected Object initialValue - 应在选项中初始选择的值。

  • static string INPUT_VALUE_PROPERTY - static string INPUT_VALUE_PROPERTY绑定属性名称。

  • protected Object inputValue - 用户输入的值。

  • protected Object message - 要显示的消息。

  • static string MESSAGE_PROPERTY - 消息的绑定属性名称。

  • static string MESSAGE_TYPE_PROPERTY - 类型的绑定属性名称。

  • static int OK_CANCEL_OPTION - 用于showConfirmDialog的类型。

  • protected int messageType - 消息类型。

  • static int NO_OPTION - 如果选择NO,则从类方法返回值。

  • static int OK_OPTION - 如果选择OK,则从类方法返回值。

  • static string OPTION_TYPE_PROPERTY - optionType的绑定属性名称。

  • protected Object[] options - 显示给用户的选项。

  • static string OPTIONS_PROPERTY - 选项的绑定属性名称。

  • protected int optionType - 选项类型,DEFAULT_OPTION,YES_NO_OPTION,YES_NO_CANCEL_OPTION或OK_CANCEL_OPTION之一。

  • static int PLAIN_MESSAGE - 不使用图标。

  • static int QUESTION_MESSAGE - 用于提问。

  • static string SELECTION_VALUES_PROPERTY - selectionValues的绑定属性名称。

  • protected Object[] selectionValues - 用户可以选择的值数组。

  • static Object UNINITIALIZED_VALUE - 表示用户尚未选择值。

  • protected Object value - 当前选定的值,将是一个有效选项,或UNINITIALIZED_VALUE或null。

  • static string VALUE_PROPERTY - 值的绑定属性名称。

  • static string WANTS_INPUT_PROPERTY - wantsInput的绑定属性名称。

  • protected boolean wantsInput - 如果为true,将向用户提供UI小部件以获取输入。

  • static int WARNING_MESSAGE - 用于警告消息。

  • static int YES_NO_CANCEL_OPTION - 用于showConfirmDialog的类型。

  • static int YES_NO_OPTION - 用于showConfirmDialog的类型。

  • static int YES_OPTION - 如果选择YES,则从类方法返回值。

类构造函数 (Class Constructors)

Sr.No.构造函数和描述
1

JOptionPane()

使用测试消息创建JOptionPane。

2

JOptionPane(Object message)

创建JOptionPane实例以使用纯文本消息类型和UI提供的默认选项显示消息。

3

JOptionPane(Object message, int messageType)

创建JOptionPane的实例以显示具有指定消息类型和默认选项的消息

4

JOptionPane(Object message, int messageType, int optionType)

创建JOptionPane的实例以显示具有指定消息类型和选项的消息。

5

JOptionPane(Object message, int messageType, int optionType, Icon icon)

创建JOptionPane的实例以显示具有指定消息类型,选项和图标的消息。

6

JOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options)

创建JOptionPane的实例以显示具有指定消息类型,图标和选项的消息。

7

JOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options, Object initialValue)

创建JOptionPane实例以显示具有指定消息类型,图标和选项的消息,并指定最初选择的选项。

Class Methods

Sr.No.方法和描述
1

JDialog createDialog(Component parentComponent, String title)

创建并返回一个新的JDialog,它以parentComponent框架中的parentComponent为中心。

2

JDialog createDialog(String title)

创建并返回具有指定标题的新的无父JDialog。

3

JInternalFrame createInternalFrame(Component parentComponent, String title)

创建并返回JInternalFrame的实例。

4

AccessibleContext getAccessibleContext()

返回与此JOptionPane关联的AccessibleContext。

5

static JDesktopPane getDesktopPaneForComponent(Component parentComponent)

返回指定组件的桌面窗格。

6

static Frame getFrameForComponent(Component parentComponent)

返回指定组件的Frame。

7

Icon getIcon()

返回此窗格显示的图标。

8

Object getInitialSelectionValue()

返回最初选择给用户显示的输入值。

9

Object getInitialValue()

返回初始值。

10

Object getInputValue()

如果wantsInput为true,则返回用户输入的值。

11

int getMaxCharactersPerLineCount()

返回消息中一行上的最大字符数。

12

Object getMessage()

返回此窗格显示的消息对象。

13

int getMessageType()

返回消息类型。

14

Object[] getOptions()

返回用户可以做出的选择。

15

int getOptionType()

返回显示的选项类型。

16

static Frame getRootFrame()

返回用于未提供框架的类方法的Frame。

17

Object[] getSelectionValues()

返回输入选择值。

18

OptionPaneUI getUI()

返回实现此组件的L&F的UI对象。

19

String getUIClassID()

返回实现此组件的L&F的UI类的名称。

20

Object getValue()

返回用户选择的值。

21

boolean getWantsInput()

返回wantsInput属性的值。

22

protected String paramString()

返回此JOptionPane的字符串表示形式。

23

void selectInitialValue()

请求选择初始值,将焦点设置为初始值。

24

void setIcon(Icon newIcon)

设置要显示的图标。

25

void setInitialSelectionValue(Object newValue)

设置最初显示为用户选择的输入值。

26

void setInitialValue(Object newInitialValue)

设置要启用的初始值 - 最初显示窗格时具有焦点的Component。

27

void setInputValue(Object newValue)

设置用户选择或输入的输入值。

28

void setMessage(Object newMessage)

设置选项窗格的message-object。

29

void setMessageType(int newType)

设置选项窗格的消息类型。

30

void setOptions(Object[] newOptions)

设置此窗格显示的选项。

31

void setOptionType(int newType)

设置要显示的选项。

32

static voidsetRootFrame(Frame newRootFrame)

设置要用于未提供框架的类方法的框架。

33

void setSelectionValues(Object[] newValues)

设置窗格的输入选择值,该窗格为用户提供可供选择的项列表。

34

void setUI(OptionPaneUI ui)

设置实现此组件的L&F的UI对象。

35

void setValue(Object newValue)

设置用户选择的值。

36

void setWantsInput(boolean newValue)

设置wantsInput属性。

37

static int showConfirmDialog(Component parentComponent, Object message)

使用选项Yes,No和Cancel打开一个对话框; 使用标题,选择一个选项。

38

static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType)

打开一个对话框,其中选项数由optionType参数确定。

39

static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)

打开一个对话框,其中选项数由optionType参数确定,其中messageType参数确定要显示的图标。

40

static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)

打开带有指定图标的对话框,其中选项数由optionType参数确定。

41

static String showInputDialog(Component parentComponent, Object message)

显示一个问题消息对话框,请求来自父组件父级的用户输入。

42

static String showInputDialog(Component parentComponent, Object message, Object initialSelectionValue)

显示一个问题消息对话框,请求用户输入并作为parentComponent的父级。

43

static String showInputDialog(Component parentComponent, Object message, String title, int essageType)

显示一个对话框,请求来自父组件父级的用户输入,对话框具有标题标题和消息类型messageType。

44

static Object showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

在阻止对话框中提示用户输入,其中可以指定初始选择,可能的选择和所有其他选项。

45

static String showInputDialog(Object message)

显示请求用户输入的问题消息对话框。

46

static String showInputDialog(Object message, Object initialSelectionValue)

显示请求用户输入的问题消息对话框,输入值初始化为initialSelectionValue。

47

static int showInternalConfirmDialog(Component parentComponent, Object message)

打开一个内部对话框面板,其中包含选项Yes,No和Cancel; 使用标题,选择一个选项。

48

static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType)

打开一个内部对话框面板,其中选项的数量由optionType参数确定。

49

static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)

打开一个内部对话框面板,其中选项数由optionType参数确定,其中messageType参数确定要显示的图标。

50

static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)

打开带有指定图标的内部对话框面板,其中选项数由optionType参数确定。

51

static String showInternalInputDialog(Component parentComponent, Object message)

显示内部问题消息对话框,请求来自父组件父级的用户输入。

52

static String showInternalInputDialog(Component parentComponent, Object message, String title, int messageType)

显示一个内部对话框,请求来自父组件父级的用户输入,对话框具有标题标题和消息类型messageType。

53

static Object showInternalInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

在阻塞内部对话框中提示用户输入,其中可以指定初始选择,可能的选择和所有其他选项。

54

static voidshowInternalMessageDialog(Component parentComponent, Object message)

打开内部确认对话框面板。

55

static voidshowInternalMessageDialog(Component parentComponent, Object message, String title, int messageType)

打开一个内部对话框面板,使用messageType参数确定的默认图标显示消息。

56

static voidshowInternalMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)

打开一个显示消息的内部对话框面板,指定所有参数。

57

static voidshowMessageDialog(Component parentComponent, Object message)

打开一个标题为“消息”的信息消息对话框。

58

static voidshowMessageDialog(Component parentComponent, Object message, String title, int messageType)

打开一个对话框,使用messageType参数确定的默认图标显示消息。

59

static voidshowMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)

打开一个显示消息的对话框,指定所有参数。

60

static int showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)

打开带有指定图标的对话框,其中初始选择由initialValue参数确定,选项数由optionType参数确定。

61

void updateUI()

来自UIManager的通知L&F已经改变。

62

static int showInternalOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)

打开具有指定图标的内部对话框面板,其中初始选择由initialValue参数确定,选项数由optionType参数确定。

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JOptionPane示例

使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 xnip 》 gui 》

SwingControlDemo.java

package cn.xnip.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;
   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showDialogDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());
      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showDialogDemo(){                                       
      headerLabel.setText("Control in action: JOptionPane"); 
      JButton okButton = new JButton("OK");        
      JButton javaButton = new JButton("Yes/No");
      JButton cancelButton = new JButton("Yes/No/Cancel");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(mainFrame, "Welcome to xnip.cn");
         }          
      });
      javaButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            int output = JOptionPane.showConfirmDialog(mainFrame
               , "Click any button"
               ,"xnip.cn"
               ,JOptionPane.YES_NO_OPTION);
            if(output == JOptionPane.YES_OPTION){
               statusLabel.setText("Yes selected.");
            } else if(output == JOptionPane.NO_OPTION){
               statusLabel.setText("No selected.");
            }
         }
      });
      cancelButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {                
            int output = JOptionPane.showConfirmDialog(mainFrame
               , "Click any button"
               ,"xnip.cn"
               ,JOptionPane.YES_NO_CANCEL_OPTION,
               JOptionPane.INFORMATION_MESSAGE);
            if(output == JOptionPane.YES_OPTION){
               statusLabel.setText("Yes selected.");
            } else if(output == JOptionPane.NO_OPTION){
               statusLabel.setText("No selected.");
            } else if(output == JOptionPane.CANCEL_OPTION){
               statusLabel.setText("Cancel selected.");
            }
         }
      });
      controlPanel.add(okButton);
      controlPanel.add(javaButton);
      controlPanel.add(cancelButton);       
      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。 转到D:/ 》 SWING并键入以下命令。

D:\SWING>javac com\xnip\gui\SwingControlDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java cn.xnip.gui.SwingControlDemo

验证以下输出。

Swing JOptionPane