2014-09-26 7 views
5

ठीक है, इसलिए मैंने पहले स्विंग एप्लिकेशन किया है, और मुझे पता है कि क्या आप एप्लिकेशन मेनू के लिए एक अलग नाम प्रदर्शित करना चाहते हैं (मैक पर एक जो आमतौर पर "प्राथमिकताएं" "और" छोड़ें "विकल्प), आपको इसका उपयोग करना होगा: System.setProperty("com.apple.mrj.application.apple.menu.about.name", "App name"); और जेएफआरएएम बनने से पहले इसे निष्पादित किया जाना चाहिए। मैंने यह किया है, लेकिन यह मेरा मुख्य वर्ग का नाम मेनू नाम के रूप में दिखाना जारी रखता है, जैसे कि मैंने कोड की उस पंक्ति को बिल्कुल नहीं लिखा है। मैं इस मुद्दे के लिए googled, लेकिन कुछ भी उपयोगी नहीं मिल सका, और फिर मैंने अभी यहां खोज की, लेकिन हर कोई जिसकी एक ही समस्या थी, जावा 1.5, 1.6, या 1.7 चला रहा था। तो मैंने सोचा कि शायद मेरे वर्तमान जावा संस्करण, 1.8 के साथ कुछ करना है।स्विंग एप्लिकेशन मेनू नाम जावा में सही ढंग से प्रदर्शित नहीं हो रहा है 1.8

This, this, और this काम नहीं किया। This, this, और this या तो मुझे पुरानी जानकारी के लिए भेजा गया, या लिंक अब और काम नहीं कर पाए हैं। इसके अलावा, मैं मैक 10.8 चला रहा हूँ।

कोई भी सुझाव/उत्तर की सराहना की जाएगी।

एक अद्यतन:

package bouncing_off_axes; 

/** 
* This is the driver class of this program. 
* 
* @author Mason 
* 
*/ 

public class Main { 

    /** 
    * The driving method. 
    * 
    * @param args 
    */ 

    public static void main(String[] args) { 

     System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Physics Engine Practice - Bouncing Balls"); 
     SimulationController view = new SimulationController("Test"); 

    } 

} 

यहाँ और एक समाधान है कि किसी के लिए प्रदान की trashgod है:

यहाँ

कोड मैं मूल रूप से था

package bouncing_off_axes; 

    import java.awt.Color; 
    import java.awt.Dimension; 
    import java.awt.EventQueue; 
    import javax.swing.BorderFactory; 
    import javax.swing.JFrame; 
    import javax.swing.JMenu; 
    import javax.swing.JMenuBar; 
    import javax.swing.JPanel; 

    /** @see https://stackoverflow.com/questions/8955638 */ 
    public class NewMain { 

     public static void main(String[] args) { 
      System.setProperty("apple.laf.useScreenMenuBar", "true"); 
      System.setProperty(
       "com.apple.mrj.application.apple.menu.about.name", "Name"); 
      EventQueue.invokeLater(new Runnable() { 

       @Override 
       public void run() { 

        JFrame frame = new JFrame("Gabby"); 
        final JPanel dm = new JPanel() { 

         @Override 
         public Dimension getPreferredSize() { 
          return new Dimension(320, 240); 
         } 
        }; 
        dm.setBorder(BorderFactory.createLineBorder(Color.blue, 10)); 

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.add(dm); 
        frame.pack(); 
        frame.setLocationByPlatform(true); 

        JMenuBar menuBar = new JMenuBar(); 
        JMenu fileMenu = new JMenu("File"); 
        menuBar.add(fileMenu); 
        frame.setJMenuBar(menuBar); 
        frame.setVisible(true); 
       } 
      }); 
     } 
    } 

और जाहिरा तौर पर मैं 10 की जरूरत है छवियों को पोस्ट करने की प्रतिष्ठा, इसलिए मैं आपको परिणाम नहीं दिखा सकता, लेकिन यह काम नहीं कर सका।

+1

[यह] (http://stackoverflow.com/a/11915509/230513), 10.9 पर मेरे लिए काम करता जावा 8. अधिक विशिष्ट मदद के लिए, अपने प्रश्न संपादित करें शामिल करने के लिए एक [पूरा उदाहरण] (http://stackoverflow.com/help/mcve) जो आपके द्वारा वर्णित समस्या का प्रदर्शन करता है। – trashgod

+0

@trashgod मैंने आपके द्वारा पोस्ट किए गए समाधान को [यहां] पोस्ट किया है (http://stackoverflow.com/questions/8955638/how-do-i-move-my-jmenubar-to-the-screen-menu-bar-on मैक-os-x/8956715 # 8956715)। एकमात्र अंतर यह है कि मेरे पास कक्षा एक गैर-डिफ़ॉल्ट पैकेज में है, और मेरे पास कोड में 'पैकेज bouncing_off_axes' संदर्भ है। यह काम नहीं करता था, मेनू ने कक्षा का नाम प्रदर्शित करना जारी रखा था, न कि नाम जो सेट किया गया था। मैं अपनी पोस्ट संपादित करूँगा और जो मूल रूप से था और जो आपने प्रदान किया है उसे डाल दें।साथ ही, मैं कोड में यह परिवर्तन करना चाहता हूं, न कि कमांड लाइन पर। – mistShaker

+1

AFAIK, 'setProperty()' दृष्टिकोण जावा 8 के साथ विफल रहता है। [उदाहरण] (http://stackoverflow.com/a/14485964/230513) के लिए अपने जार को एप्लिकेशन बंडल में क्यों न जोड़ें? – trashgod

उत्तर

5

मैक ओएस एक्स 10.9 पर जावा 8 का उपयोग करना, System संपत्ति

System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Name"); 

नाम आवेदन मेनू में प्रदर्शित बदलने में निष्प्रभावी हो गया लगता है की स्थापना। वैकल्पिक कि अभी भी काम इन में शामिल हैं:

  • डिफ़ॉल्ट रूप से, आवेदन मेनू वर्ग java कमांड लाइन या जार के प्रकट की Main-Class विशेषता में निर्दिष्ट की साधारण नाम प्रदर्शित करेगा।

    java -cp build/classes mypackage.Name 
    java -jar dist/MyJar.jar 
    
  • -Xdock:name="Name" कमांड लाइन पैरामीटर का उपयोग करें। दिखाया गया है here

    java -Xdock:name="Name" -cp build/classes mypackage.Main 
    java -Xdock:name="Name" -jar MyJar.jar 
    
  • एक मैक आवेदन बंडल के लिए आवेदन जार जोड़ें, एक Info.plist के गुण जोड़ें।

    <key>JVMOptions</key> 
    <string>-Xdock:name=Name</string> 
    
+0

धन्यवाद, मैं मदद की सराहना करता हूं। – mistShaker

+0

मैं धीरे-धीरे प्लगइन का उपयोग कर अपना जार बना रहा हूं। क्या उस दृष्टिकोण के साथ आवेदन का नाम संभव है? वर्तमान में यह सिर्फ मुख्य वर्ग के नाम को उठाता है। – rockydgeekgod

+0

जैसा कि दिखाए गए सभी तीन दृष्टिकोण अतिरिक्त भाषाई, प्लेटफॉर्म-निर्भर तंत्र हैं, मुझे नहीं पता कि क्यों नहीं; आप [टैग: gradle] में पूछ सकते हैं। – trashgod

संबंधित मुद्दे