如何在Java中向文本添加新行?

时间:2015-02-09 16:43:05

标签: java swing menu jmenu jmenuitem

我正在为我的A2计算课程创建Java游戏,我最近在制作Checkerboard的GUI,我希望在菜单栏中添加,我已经能够实现这一点。在我的代码中看到,但是对于其中一个菜单项,称为规则,我希望在文本中添加一些基本规则,这发生在这一行:
JMenuItem RulesText = new JMenuItem("")

在此我希望输入规则的文本,我已经输入了一些已经可以看到的。

我的问题是,它们都在一条线上,所以当我运行应用程序时,它显示为“Moves总是只对角线。单件总是限于向前移动(朝向对手)。国王仅限于对角线移动,但可以向前和向后移动“。问题是,这不是我希望它存在的格式,我希望它以类似于此的格式存在

  • 移动始终只是对角线
  • 单件总是限于向前移动(朝向对手) 等......

所以我怎么可能实现这一点,我试图研究这个我找不到我的格式,因为我宁愿不必改变大部分代码。任何答案都将非常感激。谢谢。 我的代码可以在下面看到:

    JMenuBar bar = new JMenuBar();
    JMenu fileMenu = new JMenu("File");
    JMenu HelpMenu = new JMenu("Help");
    JMenuItem Exit = new JMenuItem("Exit");
    JMenuItem MainMenu = new JMenuItem("Main Menu");
    JMenu Rules = new JMenu("Rules of Checkers");
    JMenuItem RulesText = new JMenuItem("- Moves are always only diagonal \n Single pieces are always limited to forward moves (toward the opponent) \n Kings are limited to moving diagonally, but may move both forward and backward");
    Rules.add(RulesText);
    HelpMenu.add(Rules);
    bar.add(HelpMenu);
    fileMenu.add(MainMenu);
    fileMenu.addSeparator();
    fileMenu.add(Exit);
    HelpMenu.add(Rules);
    bar.add(fileMenu);
    bar.add(HelpMenu);
    window.setJMenuBar(bar);

2 个答案:

答案 0 :(得分:1)

尝试在html标记中包装文本,并将<BR>标记放在您希望换行的位置。

但是,我同意@rageandqq你应该考虑将规则放在JDialog或类似的东西

答案 1 :(得分:0)

看起来这不可能,并且是使用Swing开发应用程序的限制之一。 JMenuItem上的constructors或行为似乎都不允许进行字符串格式化。

此外,设置整个JMenuItem以显示如此大的文本块并不是非常明智或用户友好。
您应该考虑使用JDialog框或类似的东西打开一个可以显示格式化规则的屏幕。