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
Lepaskan: 2024-10-29 08:20:02
asal
258 orang telah melayarinya

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
Salin selepas log masuk
  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>
Salin selepas log masuk

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);
            }
        });
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan