Tôi có một JMenuBar và một JPanel. Tôi muốn thêm JMenuBar vào JPanel. Tôi sẽ làm như thế nào?thêm JMenuBar vào JPanel?
Trả lời
Bạn có thể sử dụng một BorderLayout cho JPanel của bạn và đặt JMenuBar vào khu vực NORTH của bảng điều khiển với
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(menubar, BorderLayout.NORTH);
JMenuBar là một JComponent và có thể được thêm vào một container giống như bất kỳ khác JComponent.
JMenuBars được đặt thành JFrame bằng phương thức setJMenuBar.
Xem hướng dẫn sau về cách sử dụng chúng.
http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
Không thể thêm chúng trực tiếp vào JPanel? Tôi đã có các mục khác trên đó ... nếu tôi thêm một JFrame wont nó vẽ trên các mục Panel của tôi? – Skizit
Vâng, một JMenuBar chỉ là một JComponent, vì vậy bạn có thể thêm nó vào JPanel của bạn giống như bạn sẽ làm bất cứ điều gì khác. Tuy nhiên, vì nó được thiết kế để gắn vào một JFrame, nó có thể không hoạt động chính xác (hoặc thậm chí cả!) – Codemwnci
Tôi đã thử quá nhưng JMenuItem
với Jmenu
và JmenuBar
không được thêm vào JPanel
. Nhưng bạn có thể có được cảm giác đó nếu bạn khai báo bố cục của JFrame
là rỗng sau đó sử dụng setBounds(x, y, width, height)
trên cá thể JMenuBar
sau đó thêm thanh trình đơn vào JFrame
.
-1 để đề xuất bố cục trống – kleopatra
Hãy thử đặt một jDesktopPane trên bảng điều khiển của bạn và sau đó thêm một thanh thực đơn vào đó. Tôi đang sử dụng một khung tab trong ví dụ của tôi dưới đây, nhưng nó sẽ làm việc tương tự cho một bảng điều khiển.
JDesktopPane desktopPane = new JDesktopPane();
tabbedPane.addTab("New tab", null, desktopPane, null);
JMenuBar menuBar_1 = new JMenuBar();
menuBar_1.setBounds(0, 0, 441, 21);
desktopPane.add(menuBar_1);
hmm ... tại sao một JDesktopPane? – kleopatra
Tôi đang xây dựng một ứng dụng mà tôi muốn có thanh thực đơn trong mỗi tab có thể tháo rời để hiển thị nhiều chế độ xem World Wind. Điều này dường như là một cách tốt để làm điều đó. Không thể tìm thấy bất kỳ cách nào khác để có thanh menu men riêng cho mỗi cửa sổ. – user2248926
Tôi có một giải pháp khác, mặc dù bạn phải thêm JMenuBar vào "Các thành phần khác" trong NetBeans (đủ tốt). Tạo một JPanel và sau đó thêm một JPanel khác bên trong (gọi nó là child) để lấp đầy toàn bộ JPanel. Đặt điều khiển của bạn trong bảng con. Sau đó thêm JMenuBar nhưng NetBeans sẽ đặt nó trong "Các thành phần khác". Chỉnh sửa mã nguồn của bạn và trong ctor sau khi nó gọi là "initComponents" nơi một cuộc gọi đến chức năng này:
public static void setJPanelMenuBar(JPanel parent, JPanel child, JMenuBar menuBar) {
parent.removeAll();
parent.setLayout(new BorderLayout());
JRootPane root = new JRootPane();
parent.add(root, BorderLayout.CENTER);
root.setJMenuBar(menuBar);
root.getContentPane().add(child);
parent.putClientProperty("root", root); //if you need later
}
Ví dụ, ctor của bạn có thể trông như thế này:
public MyPanel() {
initComponents();
setJPanelMenuBar(this, child, myMenuBar);
}
trình cho tôi. Có ý tưởng bằng cách xem mã nguồn JInternalFrame. Tất cả những gì nó làm là thay thế con JPanel bằng JRootPane() và sau đó đặt con vào ô nội dung của ô gốc.
- 1. Thêm JFreeChart vào JPanel
- 2. Thêm ButtonGroup vào JPanel
- 3. Thêm người gửi hành động vào jpanel
- 4. NetBeans: cách thêm ScrollBar vào JPanel
- 5. Java: Làm cách nào để thêm JMenu vào JPanel hoặc tạo nút thả xuống?
- 6. Cách thêm JPanel bằng cách nhấp vào JButton?
- 7. Thêm hình nền vào JPanel với các góc tròn
- 8. Cách thêm đệm vào JPanel với đường viền
- 9. Làm thế nào để thêm các phím tắt JMenuBar?
- 10. Nhúng VLCJ vào JPanel
- 11. Thêm khoảng cách giữa các phần tử trong JMenuBar
- 12. JFrame xóa JPanels và thêm một JPanel mới
- 13. thêm khoảng cách giữa JFrame và JPanel
- 14. Thay đổi biên giới JMenuBar
- 15. Kích hoạt JMenuBar trên di chuột
- 16. Các thành phần Java Swing không có Kích thước chính xác khi được thêm vào JPanel
- 17. Làm cách nào để thêm hiệu ứng Aero của Window vào JPanel?
- 18. JPanel Drop Shadow
- 19. Transparent JPanel
- 20. Đặt JToggleButton với JPanel vào trong ô JTable
- 21. Cuộn một JPanel
- 22. addMouseListener cho JPanel
- 23. Java JPanel bên trong JScrollPane?
- 24. Thêm 2 hoặc nhiều đối tượng vào JFrame
- 25. JPanel repaint issue
- 26. JPanel với nền ảnh
- 27. Swing JPanel sẽ không sơn lại
- 28. JFileChooser được nhúng trong một JPanel
- 29. Lấy tiêu điểm trên JPanel
- 30. Keylistener không hoạt động với JPanel
Tôi nghĩ bạn chỉ có thể thêm JMenuBar's vào JFrame's – Enrique
Works, sẽ không cho phép tôi thêm nó vào đầu nhưng đủ gần! – Skizit
BorderLayout.PAGE_START dường như đặt nó ở vị trí hàng đầu đối với tôi. –