Jython - Thực đơn
Hầu hết các ứng dụng dựa trên GUI đều có thanh Menu ở trên cùng. Nó được tìm thấy ngay bên dưới thanh tiêu đề của cửa sổ cấp cao nhất. Gói javax.swing có cơ sở phức tạp để xây dựng một hệ thống menu hiệu quả. Nó được xây dựng với sự trợ giúp củaJMenuBar, JMenu và JMenuItem các lớp học.
Trong ví dụ sau, một thanh menu được cung cấp trong cửa sổ cấp cao nhất. Menu Tệp bao gồm ba nút mục menu được thêm vào thanh menu. Bây giờ chúng ta hãy chuẩn bị một đối tượng JFrame với bố cục được đặt thành BorderLayout.
frame = JFrame("JMenuBar example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())
Bây giờ, một đối tượng JMenuBar được kích hoạt bởi phương thức SetJMenuBar ().
bar = JMenuBar()
frame.setJMenuBar(bar)
Tiếp theo, một đối tượng JMenu có chú thích 'Tệp' được khai báo. Ba nút JMenuItem được thêm vào menu Tệp. Khi bất kỳ mục nào trong menu được nhấp, hàm OnClick () của trình xử lý ActionEvent được thực thi. Nó được định nghĩa với thuộc tính actionPerformed.
file = JMenu("File")
newfile = JMenuItem("New",actionPerformed = OnClick)
openfile = JMenuItem("Open",actionPerformed = OnClick)
savefile = JMenuItem("Save",actionPerformed = OnClick)
file.add(newfile)
file.add(openfile)
file.add(savefile)
bar.add(file)
Trình xử lý sự kiện OnClick () truy xuất tên của nút JMenuItem bằng hàm gwtActionCommand () và hiển thị nó trong hộp văn bản ở cuối cửa sổ.
def OnClick(event):
txt.text = event.getActionCommand()
Đối tượng menu Tệp được thêm vào thanh menu. Cuối cùng, một điều khiển JTextField được thêm vào ở cuối đối tượng JFrame.
txt = JTextField(10)
frame.add(txt, BorderLayout.SOUTH)
Toàn bộ mã của menu.py được cung cấp bên dưới -
from javax.swing import JFrame, JMenuBar, JMenu, JMenuItem, JTextField
from java.awt import BorderLayout
frame = JFrame("JMenuBar example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())
def OnClick(event):
txt.text = event.getActionCommand()
bar = JMenuBar()
frame.setJMenuBar(bar)
file = JMenu("File")
newfile = JMenuItem("New",actionPerformed = OnClick)
openfile = JMenuItem("Open",actionPerformed = OnClick)
savefile = JMenuItem("Save",actionPerformed = OnClick)
file.add(newfile)
file.add(openfile)
file.add(savefile)
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 bằng trình thông dịch Jython, một cửa sổ có menu Tệp sẽ xuất hiện. Nhấp vào nó và ba mục menu của nó sẽ thả xuống. Nếu bất kỳ nút nào được nhấp, tên của nút đó sẽ được hiển thị trong điều khiển hộp văn bản.