我有一个jMenuBar1,并且有两个jMenu项(比如jMenu1和jMenu2)添加到了jMenuBar1中。
我设法将jMenuBar1对象与下面这行代码对齐:
jMenuBar1.add(Box.createHorizontalGlue()); 现在,我尝试将jMenu项目中的文本与右对齐,并使文本为RTL(从右至左),但似乎什么都不起作用。我已经试过了
Menu1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jMenu1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);也不走运。
任何解决方案都将受到高度赞赏。
发布于 2013-06-22 20:44:23
你可能需要给我们更多的信息,也许你有什么屏幕截图和你试图实现什么,因为menu.setComponentOrientation()似乎对我很好…
我明白了

运行以下代码
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();
}
}
);
}
}https://stackoverflow.com/questions/17249304
复制相似问题