Dialog对象是一个窗口,显示在用户与之交互的基本窗口的顶部.在本章中,我们将看到swing库中定义的预配置对话框.它们是 MessageDialog,ConfirmDialog 和 InputDialog .由于JOptionPane类的静态方法,它们可用.
在下面的示例中,"文件"菜单有三个对应于上述三个对话框的JMenu项;每个都执行 OnClick 事件处理程序.
file = JMenu("File") msgbtn = JMenuItem("Message",actionPerformed = OnClick) conbtn = JMenuItem("Confirm",actionPerformed = OnClick) inputbtn = JMenuItem("Input",actionPerformed = OnClick) file.add(msgbtn) file.add(conbtn) file.add(inputbtn)
OnClick()处理程序函数检索Menu的标题项目按钮并调用相应的showXXXDialog()方法.
def OnClick(event): str = event.getActionCommand() if str == 'Message': JOptionPane.showMessageDialog(frame,"this is a sample message dialog") if str == "Input": x = JOptionPane.showInputDialog(frame,"Enter your name") txt.setText(x) if str == "Confirm": s = JOptionPane.showConfirmDialog (frame, "Do you want to continue?") if s == JOptionPane.YES_OPTION: txt.setText("YES") if s == JOptionPane.NO_OPTION: txt.setText("NO") if s == JOptionPane.CANCEL_OPTION: txt.setText("CANCEL")
如果选择了菜单中的消息选项,则会弹出一条消息.如果单击"输入"选项,则会弹出一个要求输入的对话框.然后输入文本显示在JFrame窗口的文本框中.如果选择了确认选项,则会出现一个包含三个按钮,YES,NO和CANCEL的对话框.用户的选择记录在文本框中.
整个代码在下面和下面给出;
from javax.swing import JFrame, JMenuBar, JMenu, JMenuItem, JTextField from java.awt import BorderLayout from javax.swing import JOptionPane frame = JFrame("Dialog example") frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.setLocation(100,100) frame.setSize(400,300) frame.setLayout(BorderLayout()) def OnClick(event): str = event.getActionCommand() if str == 'Message': JOptionPane.showMessageDialog(frame,"this is a sample message dialog") if str == "Input": x = JOptionPane.showInputDialog(frame,"Enter your name") txt.setText(x) if str == "Confirm": s = JOptionPane.showConfirmDialog (frame, "Do you want to continue?") if s == JOptionPane.YES_OPTION: txt.setText("YES") if s == JOptionPane.NO_OPTION: txt.setText("NO") if s == JOptionPane.CANCEL_OPTION: txt.setText("CANCEL") bar = JMenuBar() frame.setJMenuBar(bar) file = JMenu("File") msgbtn = JMenuItem("Message",actionPerformed = OnClick) conbtn = JMenuItem("Confirm",actionPerformed = OnClick) inputbtn = JMenuItem("Input",actionPerformed = OnClick) file.add(msgbtn) file.add(conbtn) file.add(inputbtn) bar.add(file) txt = JTextField(10) frame.add(txt, BorderLayout.SOUTH) frame.setVisible(True)
执行上述脚本时,会显示以下窗口,菜单中有三个选项 :