首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JToolbar,别让它水平了

JToolbar,别让它水平了
EN

Stack Overflow用户
提问于 2014-02-15 19:49:02
回答 3查看 669关注 0票数 1

我有一台JToolbar。我想知道有没有办法阻止它水平发展。我希望它只是垂直的。我确实想让它漂浮起来。

我尝试过创建一个属性已更改的侦听器,并将方向改回垂直方向,但没有成功。谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-02-15 20:19:28

只需使用其他布局,而不是默认的浮动布局。并使用垂直布局。

代码语言:javascript
复制
JToolbar toolbar= new JToolbar();
toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.Y_AXIS));

您也可以根本不使用任何布局

代码语言:javascript
复制
toolbar.setLayout(null);

但默认情况下,这将是水平的。

票数 2
EN

Stack Overflow用户

发布于 2014-02-15 20:45:17

看看这个https://bugs.openjdk.java.net/browse/JDK-4203039,它有一个如何过滤允许JToolbar停靠的地方的例子。

票数 2
EN

Stack Overflow用户

发布于 2015-09-26 18:12:48

您需要添加以下行:

代码语言:javascript
复制
toolBar.setOrientation(javax.swing.SwingConstants.VERTICAL);

代码示例:

代码语言:javascript
复制
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;


class VerticalJToolbar
{
    public static void main(String args[])
    {
        JFrame frame = new JFrame("VerticalJToolbarTest");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(480, 480);
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);

        JPanel panelOrange = new JPanel();
        panelOrange.setBackground(Color.ORANGE);
        panelOrange.setPreferredSize(new Dimension(100, 100));

        JPanel panelBlue = new JPanel();
        panelBlue.setBackground(Color.BLUE);
        panelBlue.setPreferredSize(new Dimension(100, 100));

        JPanel panelGreen = new JPanel();
        panelGreen.setBackground(Color.GREEN);
        panelGreen.setPreferredSize(new Dimension(100, 100));

        JPanel panelRed = new JPanel();
        panelRed.setBackground(Color.RED);
        panelRed.setPreferredSize(new Dimension(100, 100));

        JMenu menu1 = new JMenu("Menu 1");
        JMenu menu2 = new JMenu("Menu 2");
        JMenu menu3 = new JMenu("Menu 3");
        JMenu menu4 = new JMenu("Menu 4");

        JToolBar toolBarHorizontal = new JToolBar();
        toolBarHorizontal.add(menu1);
        toolBarHorizontal.add(menu2);
        toolBarHorizontal.add(menu3);
        toolBarHorizontal.add(menu4);

        JToolBar toolBarVertical = new JToolBar();
        toolBarVertical.setOrientation(SwingConstants.VERTICAL);
        toolBarVertical.add(panelOrange);
        toolBarVertical.add(panelBlue);
        toolBarVertical.add(panelGreen);
        toolBarVertical.add(panelRed);

        JPanel panelCenter = new JPanel();
        panelCenter.setBackground(Color.WHITE);

        frame.add(toolBarHorizontal, java.awt.BorderLayout.NORTH);
        frame.add(toolBarVertical, java.awt.BorderLayout.WEST);
        frame.add(panelCenter, java.awt.BorderLayout.CENTER);

        frame.setVisible(true);
    }
}

屏幕截图:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21797119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档