如何在菜单栏中添加JDialog框?

时间:2015-02-11 16:25:44

标签: java swing joptionpane jdialog jmenubar

我想知道是否有人可以帮我解决我遇到的问题?所以我正在创建一个跳棋游戏,我希望在我的窗口顶部添加一个菜单栏,其代码可以在下面看到,但是在其中一个菜单栏选项卡中,我想添加游戏规则,以便以清晰的格式显示规则。我已经决定使用一个JDialog框,我已经创建了它的代码,可以看到这段代码的代码。我的问题是如何在第一部分中将它添加到我的代码中,我已经标记为1),因为它们是java中的不同类,我希望将JDialog框添加到代码部分,其中指出:“我的对话框在哪里Box应该去!!“,这是第9行,如果有些可能为我提供代码来解决这个问题,我将非常感激,我试图在网上寻找帮助但是却找不到任何直接来自这个问题,谢谢。

    1) public static void main(String[] args) {
    JFrame window = new JFrame("Checkers"); // Sets the title at the top of the window as 'Checkers'
    JMenuBar bar = new JMenuBar(); // Adds the Menu Bar
    JMenu fileMenu = new JMenu("File"); // Adds a File Tab to the Menu Bar
    JMenu HelpMenu = new JMenu("Help"); // Adds a Help Tab to the Menu Bar
    JMenuItem Exit = new JMenuItem("Exit"); // Adds the Exit sub-tab as an Item of the JMenu
    JMenuItem MainMenu = new JMenuItem("Main Menu"); // Adds the Main Menu sub-tab as an Item of the JMenu
    JMenu Rules = new JMenu("Rules of Checkers"); // Adds the Rules of Checkers sub-tab as an Item of the JMenu
    JMenuItem RulesText = new JMenuItem("Where my Dialog Box should go!");
    Rules.add(RulesText); // Adds the Rules Text Item into the Rules of Checkers tab.
    HelpMenu.add(Rules); // Adds the Rules of Checkers tab into the Help tab
    bar.add(HelpMenu); // Adds the Help tab to the Menu Bar
    fileMenu.add(MainMenu);// Adds the Main Menu sub-tab into the File tab 
    fileMenu.addSeparator(); // Adds a line in between the Main Menu sub-tab and the Exit sub-tab
    fileMenu.add(Exit); // Adds the Exit sub-tab into the Menu tab
    bar.add(fileMenu); // Adds the Menu tab to the Menu bar
    bar.add(HelpMenu); // Adds the Help tab to the Menu Bar
    window.setJMenuBar(bar); // Adds the Menu Bar to the application window
    Exit.addActionListener(new ActionListener() // Adds an ActionListener to the Exit Sub-tab
    {
        public void actionPerformed(ActionEvent ev)
        {
            System.exit(0); // This means that when the Exit sub-tab is clicked, it will exit the application 
        }
    });

我的JDialog框的代码,如果有帮助的话,谢谢。

2) static JFrame frame;
public static void main(String args[])
{
JOptionPane.showMessageDialog(frame,
        "- Pieces must always move diagonally\n" +
        "- Single pieces are limited to forward moves\n" +
        "- Kings may move both forward and backward\n" +
        "- When a piece is captured, it is removed from the board\n" +
        "- If a player is able to make a capture, there is no option, the jump must be made\n" +
        "- When a piece reaches the opponents end of the board, it is crowned and becomes a King",
        "Rules for Checkers",
        JOptionPane.PLAIN_MESSAGE);

1 个答案:

答案 0 :(得分:3)

你完全按照你所做的那样退出"退出"菜单项。那就是你创建一个ActionListener并将ActionListener添加到"规则"菜单项。

然后在ActionListener代码中创建并显示选项窗格。

您遇到问题的原因是您的应用程序的整个设计是错误的。您永远不应该在main(...)方法中编写应用程序代码。 main方法仅用于创建应用程序的实例。我建议你看看How to Use Menus上的Swing教程。 MenuLookDemo将为您提供有关如何更好地构建代码的建议。

此外,与变量名称保持一致。变量名不应以大写字符开头。