如何调整JMenuItem的大小以适应JButton?

时间:2012-12-11 21:24:25

标签: java swing jbutton jmenu

以下是我正在使用的代码:

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,或任何组件可能)?

1 个答案:

答案 0 :(得分:1)

我完全赞同发表评论的其他人,在menuitem中放置一个按钮可能是一个奇怪的组合,如果你坚持这一点,setPreferredSize可以解决你的问题。 我使用了一个糟糕的硬编码实现,如果有人知道如何动态设置宽度,请引导我。 :P thx提前。

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);

enter image description here