Java 中可以使菜单栏在窗口左侧竖直显示吗?如果可以,该怎么做。急求!谢谢!
------解决方案--------------------
这样做好像不太美观吧,还不如将窗口分成几个块,将左边做成导航栏一样的
------解决方案--------------------
一、你要设置JMenuBar的布局,使其内部为竖直排列
二、你在把JMenuBar加到面板上时,也要将其加到整体界面的左侧
------解决方案--------------------
以下是我在本地写的测试源码,你按照修改一下就可以了,注意主要就是要设置jmenu的布局管理器,
- Java code
package com;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import javax.swing.BorderFactory;import javax.swing.BoxLayout;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPopupMenu;import javax.swing.SwingUtilities;public class TestAnswer extends JFrame{ TestAnswer(){ this.getContentPane().add(this.createMenuBar(), BorderLayout.LINE_START); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));//设置JMenuBar的布局管理器为纵向的 menuBar.add(createMenu("Menu 1")); menuBar.add(createMenu("Menu 2")); menuBar.add(createMenu("Menu 3")); menuBar.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK));//设置border return menuBar; } class HorizontalMenu extends JMenu { HorizontalMenu(String label) { super(label); JPopupMenu pm = getPopupMenu(); pm.setLayout(new BoxLayout(pm, BoxLayout.LINE_AXIS));//设置纵向菜单的布局 } @Override public Dimension getMinimumSize() { return getPreferredSize(); } @Override public Dimension getMaximumSize() { return getPreferredSize(); } } public JMenu createMenu(String title) { JMenu m = new HorizontalMenu(title); return m; } public static void main(String[] args){ //异步调用,使用awt的调度线程 SwingUtilities.invokeLater(new Runnable() { @Override public void run() { TestAnswer t = new TestAnswer(); t.pack(); t.setVisible(true); } }); }}