JToolbar左右插入



我创建了一个JToolbar组件并将其添加到Frame中。工具栏使用的是BorderLayout。

我在工具栏上添加了三个按钮,除了我想将它们添加到工具栏的右侧外,它们显示得很好。右对齐。

然后当我在工具栏上添加其他按钮时,我希望它们添加到左侧。

我该怎么做?

我做了下面的操作,但结果是按钮出现在彼此的顶部:S右边的三个按钮都在彼此上,左边的两个按钮都在彼此上。

public class Toolbar extends JToolBar {
    private JToggleButton Screenshot = null;
    private JToggleButton UserKeyInput = null;
    private JToggleButton UserMouseInput = null;
    private CardPanel cardPanel = null;
    public Toolbar() {
        setFloatable(false);
        setRollover(true);
        setLayout(new BorderLayout());
        //I want to add these three to the right side of my toolbar.. Right align them :l
        Screenshot = new JToggleButton(new ImageIcon());
        UserKeyInput = new JToggleButton(new ImageIcon());
        UserMouseInput = new JToggleButton(new ImageIcon());
        cardPanel = new CardPanel();
        add(Screenshot, BorderLayout.EAST);
        add(UserKeyInput, BorderLayout.EAST);
        add(UserMouseInput, BorderLayout.EAST);
        addListeners();
    }
    public void addButtonLeft() {        
        JButton Tab = new JButton("Game");
        Tab.setFocusable(false);
        Tab.setSize(50, 25);
        Tab.setActionCommand(String.valueOf(Global.getApplet().getCanvas().getClass().hashCode()));
        Tab.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                cardPanel.jumpTo(Integer.valueOf(e.getActionCommand()));
            }
        });
        add(Tab, BorderLayout.WEST);
    }
}

它们在彼此的顶部,因为你把它们都放在相同的两个地方-即BorderLayout.EASTBorderLayout.WEST

你可以达到你想要的效果,不使用BorderLayout,而是使用JToolBar的默认布局。

 add(tab);
 // add other elements you want on the left side 
 add(Box.createHorizontalGlue());
 add(Screenshot);
 add(UserKeyInput);
 add(UserMouseInput);
 //everything added after you place the HorizontalGlue will appear on the right side

编辑(基于您的评论):

创建一个新的JPanel,并将其添加到工具栏的粘合前:

 JPanel leftPanel = new JPanel();
 add(leftPanel);
 add(Box.createHorizontalGlue());
 add(Screenshot);
 add(UserKeyInput);
 add(UserMouseInput);

然后让你的addButtonLeft()方法添加新的按钮到面板,而不是直接到工具栏。

每个有类似问题的人都可以看看http://helpdesk.objects.com.au/java/right-align-component-in-a-jtoolbar。它提供了一个非常简单的使用水平粘合的例子,避免了更改默认布局的必要性。

这些是从上面的链接复制的代码行:

JToolBar toolbar = new JToolBar();
// These buttons will be left aligned by default
toolbar.add(new JButton("Open"));
toolbar.add(new JButton("Save"));
// add some glue so subsequent items are pushed to the right
toolbar.add(Box.createHorizontalGlue());
// This Help button will be right aligned
toolbar.add(new JButton("Help"));

相关内容

  • 没有找到相关文章

最新更新