我在Jpanel中有一些项目,然后将其推到顶部并用作基本搜索引擎的工具栏。我有一个问题,我的最后一个组合框没有显示,因为没有足够的空间。但是,左侧有很多空的空间,我需要移动所有东西来填充JPanel,这样才能显示出来。所以我的问题是如何让这些物品从最左边开始并向右转,谢谢。
//Labels for combo boxes
JLabel Bookmarklbl = new JLabel("Bookmarks:");
JLabel Historylbl = new JLabel("History:");
FlowLayout flowLayout = new FlowLayout();
MainBrowser.toolBar.setLayout(flowLayout);
//Adding items to Panel
MainBrowser.toolBar.add(Bookmarklbl);
MainBrowser.toolBar.add(BookmarkList);
MainBrowser.toolBar.add(bookmarkbtn);
MainBrowser.toolBar.add(back);
MainBrowser.toolBar.add(forward);
MainBrowser.toolBar.add(MainBrowser.addressbar);
MainBrowser.toolBar.add(home);
MainBrowser.toolBar.add(reload);
MainBrowser.toolBar.add(Historylbl);
MainBrowser.toolBar.add(historyList);
//Set the things added from left to right
MainBrowser.main.setComponentOrientation(
ComponentOrientation.LEFT_TO_RIGHT);
//Add Panel to main frame
MainBrowser.main.add(MainBrowser.toolBar,BorderLayout.NORTH);
答案 0 :(得分:1)
假设toolbar
为JPanel
且正在使用FlowLayout
,则此代码可能会对您有所帮助,
JPanel panel = new JPanel(); // your toolbar panel
FlowLayout flowLayout = (FlowLayout) panel.getLayout(); // flowlayout
flowLayout.setAlignment(FlowLayout.LEFT); // alignment to left
contentPane.add(panel, BorderLayout.NORTH); // adding this panel to original frame
希望这有帮助
答案 1 :(得分:1)
FlowLayout的默认值为CENTER。如果没有足够的空间显示所有组件,则组件将被包装到下一行。将对齐更改为LEFT不会解决此问题(只是组件的默认对齐方式)。
显示组合框是非常大的,无论如何我可以限制宽度?
您可以使用以下方法限制组合框的宽度:
comboBox.setPrototypeDisplayValue( "XXXXXXXXXX" );
这将限制组合框的首选大小,以便它可以显示在工具栏上。
但是,您仍然希望在显示弹出窗口时看到项目的全文。为此,您可以使用Combo Box Popup。
答案 2 :(得分:0)
也许这会奏效。
MainBrowser.toolbar.set(new FlowLayout(FlowLayout.LEFT));
修改强>
抱歉是[{1}}
答案 3 :(得分:0)
您可以尝试使用BoxLayout,例如:
toolBar.setLayout(new BoxLayout(toolBar,BoxLayout.X_AXIS)).