0

这是我正在使用的代码:

JMenu menu = new JMenu("Menu");

JMenuItem item = new JMenuItem("Add");
item.add(new JButton("SOMETHING A BIT WORDY"));
menu.add(item);

// ... 
JMenuBar menuBar = new JMenuBar();
menuBar.addMenu(menu);
JFrame frame = new JFrame();
frame.setJMenuBar(menuBar);

// ...
frame.pack();
frame.setVisible();

但是,按钮(在菜单项内部)看起来很小,并且仅包含文本“...”,当按钮的大小无法适合预期的文本时使用该文本。有没有办法让我的 JMenuItem “增长”以适合我的 JButton(或 JTextArea,或 JLabel,或任何可能的组件)?

4

1 回答 1

1

我完全同意发表评论的其他人,在菜单项中放置一个按钮可能是一种奇怪的组合,如果你坚持这样做,setPreferredSize 可以解决你的问题。我使用了一个糟糕的硬代码实现,如果有人知道如何动态设置宽度,也请指导我。:P 提前谢谢。

JMenu menu = new JMenu("Menu");

JMenuItem item = new JMenuItem("Add");
item.add(new JButton("SOMETHING A BIT WORDY"));
item.setLayout(new FlowLayout()); // set FlowLayout for item
item.setPreferredSize(new Dimension(200, 100)); // hard code implementation :-(
menu.add(item);

// ... 
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
JFrame frame = new JFrame();
frame.setJMenuBar(menuBar);

// ...
frame.pack();
frame.setVisible(true);

在此处输入图像描述

于 2012-12-12T03:20:35.453 回答