处理自定义MenuBar未显示

时间:2015-12-05 20:02:28

标签: java menu awt processing

我在Processing sketch中创建了一个自定义MenuBar(使用Eclipse作为我的IDE),但它没有显示。 这是一个MacOSX MenuBar:

A MenuBar on a Mac

以下是我的代码。该项目名为ProcessingTrials,该类在包ProcessingSketch下名为com.kritixilithos.trials。我正在将程序作为Java应用程序运行。我在File下创建了Save...菜单和File下拉菜单项。

//package and imports
package com.kritixilithos.trials;
import java.awt.Dimension;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Toolkit;
import processing.core.*;

import processing.core.*;

public class ProcessingSketch extends PApplet{
    public void settings() {
        //size of Processing sketch
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        double width = screenSize.getWidth();
        double height = screenSize.getHeight();
        size((int)width, (int)height);//"full screen" with menu bar showing
    }

    public void buildMenuBar() {
        //code for menubar
        MenuBar menuBar;
        Menu menu;
        MenuItem menuItem;

        menuBar = new MenuBar();

        menu = new Menu("File");
        menuBar.add(menu);

        menuItem = new MenuItem("Save...");

        menu.add(menuItem);
        menuBar.add(menu);
        menuBar.setName("MenuBar");
        frame.setMenuBar(menuBar);
    }

    public void setup() {
        background(0);
        buildMenuBar();
    }
    //the draw method
    public void draw() {

        text("Hello World!",100,100);
    }
    //main method
    public static void main(String args[]) {
        System.setProperty("apple.laf.useScreenMenuBar", "true");
        System.setProperty("com.apple.mrj.application.apple.menu.about.name", "something");
        PApplet.main(new String[] {"com.kritixilithos.trials.ProcessingSketch"});
        System.setProperty("apple.laf.useScreenMenuBar", "true");
        System.setProperty("com.apple.mrj.application.apple.menu.about.name", "something");
    }
}

这是该计划的结果:

Screenshot of result

在上方(左上角),您可以看到没有File菜单。我希望File中有一个MenuBar菜单,但没有。

我的问题是:我的程序中是否出现了错误,导致菜单无法显示,或者只是因为处理PApplet不支持添加自定义菜单栏?

一些技术细节:

  • 我使用的是Java SE 1.8版
  • 我的电脑操作系统是Mac OS X 10.10.2
  • 我在Eclipse中使用Processing version 3.0.1&{39} {/ li>

注意:控制台中没有错误,core.jar功能运行正常。

任何帮助解决此问题(使菜单显示在MenuBar中)将不胜感激。

1 个答案:

答案 0 :(得分:0)

我会尝试将其作为main方法的第一行:

System.setProperty("apple.laf.useScreenMenuBar", "true");