2017-10-12 109 views

回答

0

AVA UI - 应用Windows的外观和高对比度主题

觉得这是每个L & F中的责任为每一个通过摆动定义的ComponentUI子类的具体实现。例如,Java外观创建一个MetalTabbedPaneUI实例,为JTabbedPane提供L & F. UI委托的实际创建由Swing为您处理 - 大多数情况下,您永远不需要直接与UI委托进行交互。

刚刚尝试之前帧/对话建立在这两个选项开关:

AnyJavaContainers.setDefaultLookAndFeelDecorated (true); 
//For exapmle: 
JDialog.setDefaultLookAndFeelDecorated (true); 
JFrame.setDefaultLookAndFeelDecorated (true); 

组件的LAF变化之前创建可以知道它

SwingUtilities.updateComponentTreeUI(someComponent); 

的JFileChooser窗口大号& F:similar example No 1 & similar example No 2

更多How to Set the Look and Feel and How It's works -By Oracle Documentation

使用达里尔秋千utils的更多定制CONTROLE过的Java Swing 应用

下载达里尔秋千utils的,请阅读说明,然后运行(欧阳的)的代码,结果是选择了JFileChooser(我对这个问题投了赞成票,如果你从我的答案中明白并批准为正确答案)

对于前apmle

import java.awt.Color; 
import java.awt.Graphics; 
import javax.swing.*; 
import javax.swing.plaf.metal.MetalButtonUI; 

public class CrazyFileChooser { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       new CrazyFileChooser().makeUI(); 
      } 
     }); 
    } 

    public void makeUI() { 
     JFileChooser chooser = new JFileChooser(); 
     for (AbstractButton button : SwingUtils.getDescendantsOfType(AbstractButton.class, chooser)) { 
      button.setUI(new XORButtonUI()); 
     } 
     for (JList list : SwingUtils.getDescendantsOfType(JList.class, chooser)) { 
      list.setBackground(Color.PINK); 
     } 
     chooser.showOpenDialog(null); 
    } 
} 

class XORButtonUI extends MetalButtonUI { 

    @Override 
    public void paint(Graphics g, JComponent c) { 
     g.setXORMode(Color.YELLOW); 
     super.paint(g, c); 
    } 
} 
+0

我与你,但我对我的担心品脱同意是这样的:假设我们有一个文件选择,我ahev在UIManager的应用于所有的颜色,但是当文件选择器打开时,它会显示文件内容的黑色背景,这是因为它选择了windows的颜色,所以有没有办法只选择外观而不选择颜色 –

+0

@RishabhKhandelwal我更新了一些类似的答案示例和第三方库,如果您仍然无法找到您的问题更新您的问题与您的代码,然后我致力于您的问题,但我建议审查Java ** UIManager **类https://docs.oracle.com/javase /7/docs/api/javax/swing/UIManager.html和oracle L&F文档 https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/lookandfeel/LookAndFeelDemoProject/src/lookandfeel/LookAndFeelDemo.java – 2017-10-13 08:05:27