2

プロジェクトの LAF をシステムのデフォルトのルック アンド フィールに設定しました。現在、パネルの 1 つに JDesktopPane を配置しようとしていますが、すべての内部フレームで Java のデフォルト LAF を使用したいと考えています。プロジェクト全体の LAF を変更せずに変更する方法はありますか?

4

2 に答える 2

5
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.plaf.DesktopPaneUI;

public class AddingInternalFramestoaJDesktopPane {
  public static void main(final String[] args) throws Exception {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JDesktopPane desktop = new JDesktopPane();
    desktop.setUI(new DesktopPaneUI() {
    @Override
        public void installUI(JComponent c) {
            // TODO Auto-generated method stub
            try {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
            } catch (Exception e) {
                e.printStackTrace();
            }
            super.installUI(c);
        }   
    });
    JInternalFrame internalFrame = new JInternalFrame("Can Do All", true, true, true, true);
    desktop.add(internalFrame);
    internalFrame.setBounds(25, 25, 200, 100);
    JLabel label = new JLabel(internalFrame.getTitle(), JLabel.CENTER);
    internalFrame.add(label, BorderLayout.CENTER);
    internalFrame.setVisible(true);
    frame.add(desktop, BorderLayout.CENTER);
    frame.setSize(500, 300);
    frame.setVisible(true);
  }
}
于 2012-08-25T11:49:52.800 に答える
0

ここに画像の説明を入力
deks.setUI(new DesktopPaneUI() { @Override public void installUI(JComponent c ) { // TODO Auto-generated method stub try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } super.installUI(c); }
});

これには、いくつかのファイルを含める必要があります

import javax.swing.JDesktopPane; import javax.swing.UIManager; import javax.swing.plaf.DesktopPaneUI;

その重要性

JDesktopPane deks=new JDesktopPane();

于 2017-05-28T12:58:59.897 に答える