以下是我正在使用的代码:
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,或任何组件可能)?
答案 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);