Jython - 對話方塊



對話方塊物件是一個顯示在與其互動的基礎視窗頂部的視窗。在本章中,我們將瞭解在 Swing 庫中定義的預配置對話方塊。它們是 MessageDialog、ConfirmDialogInputDialog。它們可以透過 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() 處理程式函式檢索選單項按鈕的標題,並呼叫相應的 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 視窗中的文字框中顯示輸入文字。如果選中確認選項,則會出現一個帶有三個按鈕的對話方塊,分別是“是”、“否”和“取消”。使用者的選擇會記錄在文字框中。

整個程式碼如下所示 −

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)

執行上述指令碼時,將顯示以下視窗,選單中有三個選項 −

Dialog

訊息框

Message box

輸入框

Input Box

確認對話方塊

Confirm Dialog
廣告
© . All rights reserved.