我将项目的laf设置为系统默认的外观。现在我试图在我的面板中放置一个jdesktoppane,但是我希望所有的内部框架都使用java默认的laf。有没有办法在不改变整个项目laf的情况下改变它?
7eumitmz1#
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); } }
i2loujxw2#
在此处输入图像描述 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();
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.plaf.DesktopPaneUI;
JDesktopPane deks=new JDesktopPane();
2条答案
按热度按时间7eumitmz1#
i2loujxw2#
在此处输入图像描述
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();