Rumah >Java >javaTutorial >Mengapakah JMenuBar saya meninggalkan ruang kosong pada bar menu skrin Mac OS X?

Mengapakah JMenuBar saya meninggalkan ruang kosong pada bar menu skrin Mac OS X?

Susan Sarandon
Susan Sarandonasal
2024-10-29 08:20:02338semak imbas

Why does my JMenuBar leave a blank space on the Mac OS X screen menu bar?

Isu dengan JMenuBar Shifting pada Mac OS X

Apabila cuba mengalihkan JMenuBar ke bar menu skrin dalam persekitaran Mac OS X, ruang kosong selalunya ditinggalkan di mana menu akan berada di dalam tetingkap. Isu ini boleh diselesaikan dengan mewujudkan sifat "apple.laf.useScreenMenuBar" pada masa yang sesuai.

Penyelesaian

Untuk menangani masalah ini, tetapkan sifat "apple .laf.useScreenMenuBar" pada pelancaran program menggunakan salah satu kaedah berikut:

  1. Arahan Pelancaran: Sertakan tetapan sifat dalam arahan pelancaran:
java -Dapple.laf.useScreenMenuBar=true -jar MyApplication.jar
  1. Info.plist Pengubahsuaian: Tambahkan sifat pada fail Info.plist bundle aplikasi:
<key>Properties</key>
<dict>
    <key>apple.laf.useScreenMenuBar</key>
    <string>true</string>
    ...
</dict>

Pertimbangan Tambahan

Perlu ambil perhatian bahawa menetapkan sifat selepas aplikasi dilancarkan mungkin tidak berkesan. Kod berikut menunjukkan pelaksanaan yang betul apabila tiada ruang kosong:

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 http://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);
            }
        });
    }
}

Atas ialah kandungan terperinci Mengapakah JMenuBar saya meninggalkan ruang kosong pada bar menu skrin Mac OS X?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn