2012-04-29 2 views

答えて

1

Javaはすべてのプラットフォームで99.9%類似しています。だから、もしあなたがWindows上でそれを行う方法を知っていれば、あなたはMacで同じ結果を達成することができます。

ヒント:

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

::)

は、このリンクを試してみて下さいとのJMenuBarとのJMenuItemについて読ん

を慎重にあなたの質問を読んだ後、今、私はあなたが望むものを理解試してみてください

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

関連する問題