首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置JMenu方向RTL

设置JMenu方向RTL
EN

Stack Overflow用户
提问于 2013-06-22 17:41:06
回答 1查看 868关注 0票数 1

我有一个jMenuBar1,并且有两个jMenu项(比如jMenu1jMenu2)添加到了jMenuBar1中。

我设法将jMenuBar1对象与下面这行代码对齐:

代码语言:javascript
运行
复制
jMenuBar1.add(Box.createHorizontalGlue());    

现在,我尝试将jMenu项目中的文本与右对齐,并使文本为RTL(从右至左),但似乎什么都不起作用。我已经试过了

代码语言:javascript
运行
复制
Menu1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jMenu1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

也不走运。

任何解决方案都将受到高度赞赏。

EN

回答 1

Stack Overflow用户

发布于 2013-06-22 20:44:23

你可能需要给我们更多的信息,也许你有什么屏幕截图和你试图实现什么,因为menu.setComponentOrientation()似乎对我很好…

我明白了

运行以下代码

代码语言:javascript
运行
复制
import javax.swing.*;
import java.awt.*;

public class MenuTest extends JFrame{

    public static void display()
    {
        JFrame frame = new JFrame();
        frame.setSize(400,400);
        frame.setLayout(new GridLayout(6,1));
        JMenuBar menuBar = new JMenuBar();
        menuBar.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        JMenu jMenu1 = new JMenu("Menu1");
        jMenu1.setMinimumSize(new Dimension(200, 20));
        jMenu1.setMaximumSize(new Dimension(200, 20));
        jMenu1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        JMenu jMenu2 = new JMenu("Menu2");
        jMenu2.setMinimumSize(new Dimension(200, 20));
        jMenu2.setMaximumSize(new Dimension(200, 20));
        JMenuItem menuItem1 = new JMenuItem("Item1");
        JMenuItem menuItem2 = new JMenuItem("Item2");
        menuItem1.setMinimumSize(new Dimension(200, 20));
        menuItem1.setMaximumSize(new Dimension(200, 20));
        menuItem1.setPreferredSize(new Dimension(200, 20));
        menuItem1.setSize(new Dimension(200, 20));
        menuItem2.setMinimumSize(new Dimension(200, 20));
        menuItem2.setMaximumSize(new Dimension(200, 20));
        menuItem1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        menuItem2.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        jMenu1.setHorizontalAlignment(JMenu.TRAILING);
        jMenu1.add(menuItem1);
        jMenu1.add(menuItem2);
        menuBar.add(jMenu1);
        menuBar.add(jMenu2);
        menuBar.setSize(frame.getWidth(), 20);
        frame.add(menuBar);
        frame.setVisible(true);
    }
    public static void main(String[] args)
    {
        EventQueue.invokeLater(
                new Runnable() {
                    @Override
                    public void run() {
                        MenuTest.display();
                    }
                }
         );
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17249304

复制
相关文章

相似问题

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