저는 JMenuBar와 JPanel을 가지고 있습니다. JPanel에 JMenuBar를 추가하고 싶습니다. 내가 어떻게 그럴 수 있니?JPanel에 JMenuBar를 추가 하시겠습니까?
답변
당신은 당신의 JPanel을위한 BorderLayout를 사용하고
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(menubar, BorderLayout.NORTH);
의 JMenuBar JComponent을하고 다른 같은 컨테이너에 추가 할 수 있습니다와 패널의 북쪽 지역으로의 JMenuBar를 넣을 수 있습니다 JComponent
JMenuBars는 setJMenuBar 메서드를 사용하여 JFrame에 설정됩니다.
사용 방법에 대한 다음 자습서를 참조하십시오.
http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
도 시도했지만 JMenuItem
은 Jmenu
이고 JmenuBar
은 JPanel
에 추가되지 않았습니다. JFrame
의 레이아웃을 null로 선언하면 JMenuBar
인스턴스에 setBounds(x, y, width, height)
을 사용하고 JFrame
에 메뉴 모음을 추가하면 그 느낌을 얻을 수 있습니다.
-1 널 레이아웃을 제안합니다. – kleopatra
jDesktopPane을 패널에 놓은 다음 메뉴 바를 추가하십시오. 아래 예에서 탭 패널을 사용하고 있지만 패널에서도 동일하게 작동해야합니다. 당신이 넷빈즈 (충분)에서 "기타 구성 요소"에서의 JMenuBar를 추가 할 필요가 있지만
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);
음 ... 왜 JDesktopPane입니까? – kleopatra
여러 개의 세계 바람보기를 표시하기 위해 각 분리 가능 탭에 메뉴 모음이 있어야하는 앱을 만들고 있습니다. 이것은 그것을하는 좋은 방법처럼 보였다. 각 창마다 별도의 메뉴 모음이있는 다른 방법을 찾을 수 없습니다. – user2248926
나는, 다른 해결책이있다. JPanel을 만든 다음 전체 JPanel을 채우는 내부에 다른 JPanel을 추가합니다 (자식이라고 부름). 컨트롤을 하위 패널에 배치합니다. 그런 다음 JMenuBar를 추가하지만 NetBeans가이를 "기타 구성 요소"에 배치합니다. 소스를 편집하고 ctor에에는 "initComponents"장소는이 함수를 호출 호출 후 :
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
}
예를 들어, 당신의 ctor는 다음과 같습니다 나를 위해
public MyPanel() {
initComponents();
setJPanelMenuBar(this, child, myMenuBar);
}
작품. JInternalFrame 소스 코드를보고 아이디어를 얻었습니다. 모두 JPanel을 JRootPane()으로 대체 한 다음 하위를 루트 창 콘텐츠 창에 배치합니다.
- 1. 간단 JPanel에 JLabel 추가
- 2. JPanel에 컴포넌트 추가
- 3. JPanel에 타원 추가 (paintComponent)
- 4. TableLayout이있는 다른 JPanel에 JPanel 추가
- 5. GUI 빌더를 사용하여 만든 JPanel에 메소드 추가
- 6. List <JToogleButton>을 JPanel에 추가
- 7. 레이아웃이 "GridLayout"인 JPanel에 JButton을 추가
- 8. JFrame 내부의 기존 JPanel에 이미지 추가
- 9. Java MVC 아키텍처에서 JMenuBar를 통합하는 방법은 무엇입니까?
- 10. 여러 개의 패널이있는 JFrame 내부의 JPanel에 이미지 추가
- 11. 은 JPanel에 구성 요소를 추가 할 때 문제가됩니까?
- 12. JPanel에 추가 할 때 이미지가 회색 사각형으로 표시됩니다.
- 13. JPanel에 추가 된 JButton에 ActionListener를 추가하는 방법은 무엇입니까?
- 14. JPanel에 jpg 이미지 표시
- 15. JPanel에 그림 그리기
- 16. 문자열을 jpanel에 그리기
- 17. 이미지가 JPanel에 표시되지 않습니다.
- 18. JPanel에 JButton이 있는지 확인합니다.
- 19. JPanel에 잘못된 선이 그려졌습니다.
- 20. JPanel에 대한 정보 얻기
- 21. JPanel에 무작위 점 배치
- 22. JPanel에 JCheckBox 중앙에 배치
- 23. JPanel에 JList의 이미지 표시
- 24. jpanel에 비주얼을 추가하는 방법은 무엇입니까?
- 25. 런타임에 JPanel에 구성 요소를 추가하는 방법
- 26. NetBeans : JPanel에 ScrollBar를 추가하는 방법
- 27. JPanel에 임의의 기하학적 변환 적용
- 28. JPanel에 HWND (윈도우 핸들) 삽입하기
- 29. JPanel에 추가했을 때 JScrollPane의 크기가 변경되지 않습니다
- 30. JPanel에 add()를 지정하면 크기가 깨집니다.
JFrame의 – Enrique
Works에만 JMenuBar를 추가 할 수 있다고 생각했는데 맨 위에 추가하지 못하게되었습니다. 그러나 충분히 가깝다! – Skizit
BorderLayout.PAGE_START가 나를 위해 맨 위에 놓은 것 같습니다. –