1、如何更改JButton的大小
2、如何更改JMenu的大小
3、如何设置两个JMenu之间的间距
4、如何把鼠标放置在JMenu上,即弹出JMenuItem每题5分,答对即给分.

解决方案 »

  1.   

    1. setSize(int width,int height)
     2. setSize(int width,int height)
      

  2.   

    JMenu设置间距,我没有发现过有什么JDK的方法,不过一个JMenu可以添加一个组件,如
    JMenu.add(new JLabel('123')),如果内容为空就可以没有显示地隔开了。但我觉得用菜单这样做无意义。
    放上去就弹出?倒没有做过,你可以试试JMenuItem.show()方法
      

  3.   

    楼上的你是说获取鼠标焦点,
    当到达JMenu上时,即触发JMenuItem.show()吗?
      

  4.   

    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;import javax.swing.*;public class T {
    public static void main(String[] args) {
    try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    e.printStackTrace();
    }

    MouseListener ml = new MouseAdapter() {
    public void mouseEntered(MouseEvent e) {
    JMenu menu = (JMenu) e.getComponent();
    MenuElement me[] = new MenuElement[3];
    me[0]=(MenuElement)menu.getParent();
    me[1]=menu;
    me[2]=menu.getPopupMenu();
    MenuSelectionManager.defaultManager().setSelectedPath(me);
    }
    };

    JMenuBar mb = new JMenuBar();
    JMenu fileMenu = new JMenu("File");
    fileMenu.add(new JMenuItem("Open"));
    fileMenu.add(new JMenuItem("Save"));
    fileMenu.add(new JMenuItem("Save As..."));

    JMenu recentMenu = new JMenu("Recent");
    recentMenu.add(new JMenuItem("C:/abc.txt"));
    recentMenu.add(new JMenuItem("D:/def.txt"));
    recentMenu.add(new JMenuItem("E:/jkl.txt"));
    fileMenu.addSeparator();
    fileMenu.add(recentMenu);

    JMenu editMenu = new JMenu("Edit");
    editMenu.add(new JMenuItem("Cut"));
    editMenu.add(new JMenuItem("Copy"));
    editMenu.add(new JMenuItem("Paste"));

    JMenu helpMenu = new JMenu("Help");
    helpMenu.add(new JMenuItem("About"));

    mb.add(fileMenu);
    mb.add(Box.createHorizontalStrut(50));
    mb.add(editMenu);
    mb.add(Box.createHorizontalGlue());
    mb.add(helpMenu); fileMenu.addMouseListener(ml);
    editMenu.addMouseListener(ml);
    helpMenu.addMouseListener(ml); JFrame f = new JFrame("MenuTest");
    f.setJMenuBar(mb);
    f.setSize(500, 300);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }