有关GUI编程 Java 中可以使菜单栏在窗口左侧竖直显示吗?如果可以,该怎么做。急求!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一、你要设置JMenuBar的布局,使其内部为竖直排列二、你在把JMenuBar加到面板上时,也要将其加到整体界面的左侧 以下是我在本地写的测试源码,你按照修改一下就可以了,注意主要就是要设置jmenu的布局管理器,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); } }); }} 关于myeclipse调试java网络程序的问题!就高手指点! group.setProperties(user); 为什么设置失败。 一个JTable的问题··请指点··谢谢··· 求一个正则表达式 关于静态变量的处理 初学求助 JApplet中sql数据库访问的问题??? 窗口关闭状态为DO_NOTHING_ON_CLOSE 还是关闭了? 什么时代外数据? 100分求Borland Enterprise Server AppServer5.0国内下载地址 如何使用java调批处理 求助、、、、
二、你在把JMenuBar加到面板上时,也要将其加到整体界面的左侧
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);
}
});
}
}