我有一个jMenuBar1
,jMenu
添加了两个jMenu1
项(比如jMenu2
和jMenuBar1
)。
我设法将jMenuBar1
对象与这行代码对齐:
jMenuBar1.add(Box.createHorizontalGlue());
现在我试图将jMenu项目中的文本对齐并使文本RTL(从右到左)但似乎没有任何效果。 我已经尝试了
Menu1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jMenu1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
没有运气。
任何解决方案都将受到高度赞赏。
答案 0 :(得分:1)
您可能需要向我们提供更多信息,或许有些屏幕截图显示您拥有的内容以及您尝试实现的目标,因为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();
}
}
);
}
}