2012-04-29 4 views

답변

1

자바 실행률은 모든 플랫폼에서 99.9 %입니다. 따라서 Windows에서 실행하는 방법을 알고 있다면 Mac에서 동일한 결과를 얻을 수 있습니다.

힌트 : 찾아, 지금은

이 링크를 시도하십시오 : 당신이 원하는 것을 이해하고 신중하게 질문을 읽은 후에의 JMenuBar 및 JMenuItem를

에 대해 읽어 :

http://developer.apple.com/library/mac/#documentation/Java/Reference/Java_PropertiesRef/Articles/JavaSystemProperties.html

을 사용해보기

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

을 주 방법으로 사용하고 작동하는지 확인하십시오.

예 - 코드 예를 목적으로 편집

내가 (여기에 삽입 응용 프로그램 이름) 편재 옵션에서 화면의 맨 상단에있는 메뉴 표시 줄에 넣어 의미
/* 
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. 
* 
* Redistribution and use in source and binary forms, with or without 
* modification, are permitted provided that the following conditions 
* are met: 
* 
* - Redistributions of source code must retain the above copyright 
*  notice, this list of conditions and the following disclaimer. 
* 
* - Redistributions in binary form must reproduce the above copyright 
*  notice, this list of conditions and the following disclaimer in the 
*  documentation and/or other materials provided with the distribution. 
* 
* - Neither the name of Oracle or the names of its 
*  contributors may be used to endorse or promote products derived 
*  from this software without specific prior written permission. 
* 
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
*/ 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.JMenu; 
import javax.swing.JMenuItem; 
import javax.swing.JCheckBoxMenuItem; 
import javax.swing.JRadioButtonMenuItem; 
import javax.swing.ButtonGroup; 
import javax.swing.JMenuBar; 
import javax.swing.KeyStroke; 
import javax.swing.ImageIcon; 

import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JScrollPane; 
import javax.swing.JFrame; 

/* MenuLookDemo.java requires images/middle.gif. */ 

/* 
* This class exists solely to show you what menus look like. 
* It has no menu-related event handling. 
*/ 
public class MenuLookDemo { 
    JTextArea output; 
    JScrollPane scrollPane; 

    public JMenuBar createMenuBar() { 
     JMenuBar menuBar; 
     JMenu menu, submenu; 
     JMenuItem menuItem; 
     JRadioButtonMenuItem rbMenuItem; 
     JCheckBoxMenuItem cbMenuItem; 

     //Create the menu bar. 
     menuBar = new JMenuBar(); 

     //Build the first menu. 
     menu = new JMenu("A Menu"); 
     menu.setMnemonic(KeyEvent.VK_A); 
     menu.getAccessibleContext().setAccessibleDescription(
       "The only menu in this program that has menu items"); 
     menuBar.add(menu); 

     //a group of JMenuItems 
     menuItem = new JMenuItem("A text-only menu item", 
           KeyEvent.VK_T); 
     //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead 
     menuItem.setAccelerator(KeyStroke.getKeyStroke(
       KeyEvent.VK_1, ActionEvent.ALT_MASK)); 
     menuItem.getAccessibleContext().setAccessibleDescription(
       "This doesn't really do anything"); 
     menu.add(menuItem); 

     ImageIcon icon = createImageIcon("images/middle.gif"); 
     menuItem = new JMenuItem("Both text and icon", icon); 
     menuItem.setMnemonic(KeyEvent.VK_B); 
     menu.add(menuItem); 

     menuItem = new JMenuItem(icon); 
     menuItem.setMnemonic(KeyEvent.VK_D); 
     menu.add(menuItem); 

     //a group of radio button menu items 
     menu.addSeparator(); 
     ButtonGroup group = new ButtonGroup(); 

     rbMenuItem = new JRadioButtonMenuItem("A radio button menu item"); 
     rbMenuItem.setSelected(true); 
     rbMenuItem.setMnemonic(KeyEvent.VK_R); 
     group.add(rbMenuItem); 
     menu.add(rbMenuItem); 

     rbMenuItem = new JRadioButtonMenuItem("Another one"); 
     rbMenuItem.setMnemonic(KeyEvent.VK_O); 
     group.add(rbMenuItem); 
     menu.add(rbMenuItem); 

     //a group of check box menu items 
     menu.addSeparator(); 
     cbMenuItem = new JCheckBoxMenuItem("A check box menu item"); 
     cbMenuItem.setMnemonic(KeyEvent.VK_C); 
     menu.add(cbMenuItem); 

     cbMenuItem = new JCheckBoxMenuItem("Another one"); 
     cbMenuItem.setMnemonic(KeyEvent.VK_H); 
     menu.add(cbMenuItem); 

     //a submenu 
     menu.addSeparator(); 
     submenu = new JMenu("A submenu"); 
     submenu.setMnemonic(KeyEvent.VK_S); 

     menuItem = new JMenuItem("An item in the submenu"); 
     menuItem.setAccelerator(KeyStroke.getKeyStroke(
       KeyEvent.VK_2, ActionEvent.ALT_MASK)); 
     submenu.add(menuItem); 

     menuItem = new JMenuItem("Another item"); 
     submenu.add(menuItem); 
     menu.add(submenu); 

     //Build second menu in the menu bar. 
     menu = new JMenu("Another Menu"); 
     menu.setMnemonic(KeyEvent.VK_N); 
     menu.getAccessibleContext().setAccessibleDescription(
       "This menu does nothing"); 
     menuBar.add(menu); 

     return menuBar; 
    } 

    public Container createContentPane() { 
     //Create the content-pane-to-be. 
     JPanel contentPane = new JPanel(new BorderLayout()); 
     contentPane.setOpaque(true); 

     //Create a scrolled text area. 
     output = new JTextArea(5, 30); 
     output.setEditable(false); 
     scrollPane = new JScrollPane(output); 

     //Add the text area to the content pane. 
     contentPane.add(scrollPane, BorderLayout.CENTER); 

     return contentPane; 
    } 

    /** Returns an ImageIcon, or null if the path was invalid. */ 
    protected static ImageIcon createImageIcon(String path) { 
     java.net.URL imgURL = MenuLookDemo.class.getResource(path); 
     if (imgURL != null) { 
      return new ImageIcon(imgURL); 
     } else { 
      System.err.println("Couldn't find file: " + path); 
      return null; 
     } 
    } 

    /** 
    * Create the GUI and show it. For thread safety, 
    * this method should be invoked from the 
    * event-dispatching thread. 
    */ 
    private static void createAndShowGUI() { 
     //Create and set up the window. 
     JFrame frame = new JFrame("MenuLookDemo"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     //Create and set up the content pane. 
     MenuLookDemo demo = new MenuLookDemo(); 
     frame.setJMenuBar(demo.createMenuBar()); 
     frame.setContentPane(demo.createContentPane()); 

     //Display the window. 
     frame.setSize(450, 260); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     //Schedule a job for the event-dispatching thread: 
     //creating and showing this application's GUI. 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       //This line does the trick 
       System.setProperty("apple.laf.useScreenMenuBar", "true"); 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 
+0

. Windows OS를 사용하는 경우 Mac의 스크린 샷에서 화면 상단을보십시오. 그것이 바로. – Cin316

+0

@ Cin316, 미안하지만 처음에 내가 잘못 이해했지만 나중에 내 대답을 업데이트했습니다. 내가 공유 한 링크로 이동합니다. – doNotCheckMyBlog

+0

그래, 괜찮아. 페이지를 살펴 봤지만 (응용 프로그램 이름) 메뉴 아래에 넣는 방법을 알지 못했습니다. – Cin316