Jython - İletişim Kutuları

İletişim kutusu nesnesi, kullanıcının etkileşimde bulunduğu temel pencerenin üstünde görünen bir penceredir. Bu bölümde, swing kütüphanesinde tanımlanan önceden yapılandırılmış diyalogları göreceğiz. OnlarMessageDialog, ConfirmDialog ve InputDialog. JOptionPane sınıfının statik yöntemi nedeniyle kullanılabilirler.

Aşağıdaki örnekte, Dosya menüsünde yukarıdaki üç iletişim kutusuna karşılık gelen üç JMenu öğesi vardır; her biriOnClick olay işleyicisi.

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 () işleyici işlevi, Menü Öğesi düğmesinin başlığını alır ve ilgili showXXXDialog () yöntemini çağırır.

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

Menüden mesaj seçeneği seçilirse, bir mesaj açılır. Giriş seçeneği tıklanırsa, giriş isteyen bir iletişim kutusu açılır. Giriş metni daha sonra JFrame penceresindeki metin kutusunda görüntülenir. Onayla seçeneği seçilirse, EVET, HAYIR ve İPTAL olmak üzere üç düğmeli bir iletişim kutusu açılır. Kullanıcının seçimi metin kutusuna kaydedilir.

Kodun tamamı aşağıda verilmiştir -

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)

Yukarıdaki komut dosyası yürütüldüğünde, menüde üç seçenekle aşağıdaki pencere görüntülenir -

Mesaj Kutusu

Giriş Kutusu

İletişim Kutusunu Onaylayın