簡體   English   中英

JInternalFrame在Netbeans 7.1.2中沒有使用JFrame L&F

[英]JInternalFrame not using JFrame L&F in Netbeans 7.1.2

我正在使用Netbeans創建一個MDI應用程序,一切都運行正常,外觀和感覺設置為Nimbus。

無論何時我運行應用程序,JFrame及其工具欄都使用指定的L&F(Nimbus),但內部框架使用交叉平台(金屬)L&F使應用程序看起來很破舊。

我希望內部框架使用與JFrame相同的L&F。 請問我該如何解決這個問題?

我試過調用JFrame.setdefaultlookandfeeldecorated(true)SwingUtilities.updatecomponenttreeui(frame)但是他們沒有解決問題。

無論何時我運行應用程序,JFrame及其工具欄都使用指定的L&F(Nimbus),但內部框架使用交叉平台(金屬)L&F使應用程序看起來很破舊。

  • 無法重現所描述的問題

  • 請閱讀有關Nimbus外觀的 Oracle教程

在此輸入圖像描述

import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.*;
import javax.swing.UIManager.LookAndFeelInfo;

public class TestInternalFrame {

    public TestInternalFrame() {
        final JInternalFrame internal = new JInternalFrame("test");
        final JInternalFrame hidden = new JInternalFrame("test");
        hidden.setBounds(1000, 1000, 1, 1);
        hidden.setVisible(true);
        internal.setVisible(true);
        internal.setBounds(0, 0, 100, 100);
        JDesktopPane pane = new JDesktopPane();
        pane.add(internal);
        pane.add(hidden);
        pane.setPreferredSize(new Dimension(10000, 10000));
        final JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(new JScrollPane(pane,
                JScrollPane.VERTICAL_SCROLLBAR_NEVER,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
        /*frame.getContentPane().add(new JButton(new AbstractAction("Show blocked dialog") {

        private static final long serialVersionUID = 1L;

        @Override
        public void actionPerformed(ActionEvent e) {
        EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
        JOptionPane.showInternalMessageDialog(hidden, "Hi 2!");
        }
        });
        JOptionPane.showInternalMessageDialog(internal, "Hi 1!");
        }
        }), BorderLayout.PAGE_END);*/
        frame.setPreferredSize(new Dimension(400, 300));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                System.out.println(info.getName());
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (UnsupportedLookAndFeelException e) {
            // handle exception
        } catch (ClassNotFoundException e) {
            // handle exception
        } catch (InstantiationException e) {
            // handle exception
        } catch (IllegalAccessException e) {
            // handle exception
        }

        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                TestInternalFrame tif = new TestInternalFrame();
            }
        });
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM