【问题标题】:Aligning JMenu on the right corner of JMenuBar in Java Swing在 Java Swing 中 JMenuBar 的右上角对齐 JMenu
【发布时间】:2011-12-19 11:43:43
【问题描述】:

所以如果我有一个 JMenuJMenuBar 定义这样:

jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu1.setText("About");
jMenuBar1.add(jMenu1);

// Finally
setJMenuBar(jMenuBar1);

这样,“关于”菜单与菜单栏的最左侧对齐。无论如何我可以在菜单栏的最右侧对齐这个菜单吗?

【问题讨论】:

    标签: java swing jmenu jmenubar


    【解决方案1】:

    有一个可用的补丁:

    jMenuBar.add(Box.createHorizontalGlue());
    

    在将菜单添加到菜单栏之前添加此行,您的菜单将出现在菜单栏的右侧。比如:

    .....
    jMenu1.setText("About");
    jMenuBar1.add(Box.createHorizontalGlue()); <-- horizontal glue
    jMenuBar1.add(jMenu1);
    .....
    

    【讨论】:

      【解决方案2】:
      jMenuBar1.add(Box.createHorizontalGlue());
      

      不要忘记将JMenuJMenuItem 对齐

      JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
      

      【讨论】:

      • 这有什么不同吗?不使用 ComponentOrienatation 就可以了?
      • JMenuItems 总是放在容器内
      • -1 第二部分:ComponentOrientation 与要求无关(如果我正确理解 OP,他/她有一个简单的布局问题 ;-)
      【解决方案3】:

      正如 mKorbel 对 JMenu 所说,它适用于 JMenuBar,如下所示:

          jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
      

      【讨论】:

        【解决方案4】:

        您可以参考https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

        特别记下部分

        通过在从左到右的盒子中的两个组件之间放置水平胶水,您可以在这些组件之间留出任何额外的空间

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-02
          • 2023-04-01
          • 1970-01-01
          • 2011-05-25
          • 1970-01-01
          • 1970-01-01
          • 2020-06-02
          相关资源
          最近更新 更多