Jython - Hộp thoại

Đối tượng Hộp thoại là một cửa sổ xuất hiện trên đầu cửa sổ cơ sở mà người dùng tương tác. Trong chương này, chúng ta sẽ thấy các hộp thoại được cấu hình sẵn được xác định trong thư viện swing. họ đangMessageDialog, ConfirmDialogInputDialog. Chúng khả dụng vì phương thức tĩnh của lớp JOptionPane.

Trong ví dụ sau, menu Tệp có ba mục JMenu tương ứng với ba hộp thoại trên; mỗi người thực hiệnOnClick xử lý sự kiện.

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)

Hàm xử lý OnClick () truy xuất chú thích của nút Menu Item và gọi phương thức showXXXDialog () tương ứng.

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")

Nếu tùy chọn tin nhắn từ menu được chọn, một thông báo sẽ bật lên. Nếu tùy chọn Đầu vào được nhấp, hộp thoại yêu cầu đầu vào sẽ bật lên. Văn bản đầu vào sau đó được hiển thị trong hộp văn bản trong cửa sổ JFrame. Nếu tùy chọn Xác nhận được chọn, một hộp thoại có ba nút, CÓ, KHÔNG và HỦY sẽ xuất hiện. Lựa chọn của người dùng được ghi lại trong hộp văn bản.

Toàn bộ mã được đưa ra bên dưới -

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)

Khi tập lệnh trên được thực thi, cửa sổ sau được hiển thị với ba tùy chọn trong menu:

Hộp tin nhắn

Hộp đầu vào

Hộp thoại xác nhận