2017-10-12 6 views
0

J'ai une application qui utilise l'aspect et la convivialité de Windows. Dès que je change le thème des fenêtres en thème à contraste élevé, toute la couleur de mon application est modifiée même lorsque j'ai défini les couleurs par défaut. Quelqu'un peut-il me dire un travail autour.JAVA UI - Application de l'apparence et de la sensation des fenêtres avec le thème Contraste élevé

+0

Pouvez-vous inclure votre code pour nous de voir où il va mal – Lokesh

Répondre

0

UI AVA - fenêtres look and feel Application avec le thème de contraste élevé

Il est de la responsabilité de chaque L & F pour fournir une mise en œuvre concrète pour chacune des sous-classes ComponentUI définies par Swing. Par exemple, Java Look and Feel crée une instance de MetalTabbedPaneUI pour fournir le L & F pour JTabbedPane. La création réelle du délégué de l'interface utilisateur est gérée par Swing pour vous. Dans la plupart des cas, vous n'avez jamais besoin d'interagir directement avec le délégué de l'interface utilisateur.

juste essayer allumer ces deux options avant images/dialogues création:

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

Component créé avant le changement LAF peut le savoir

SwingUtilities.updateComponentTreeUI(someComponent); 

fenêtre JFileChooser L & F: similar example No 1 & similar example No 2 .

Pour plus How to Set the Look and Feel and How It's works -By Oracle Documentation

En utilisant plus de Utils Swing Darryl personnaliser controle sur Java Swing application

Télécharger Swing Darryl Utils, lisez les descriptions, puis exécutez le code (Darryl), le résultat est la sélection des JFileChooser (Je vote pour cette question, Si vous comprenez de ma réponse et que vous l'acceptez comme réponse correcte)

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

Je suis d'accord avec vous, mais mon ma pinte d'inquiétude est la suivante: Supposons que nous ayons une sélection de fichiers, j'ahev appliqué toutes les couleurs UIManager , mais lorsque le sélecteur de fichier s'ouvre, il affiche un arrière-plan noir pour le contenu du fichier, c'est parce qu'il sélectionne la couleur des fenêtres, il est donc possible de choisir l'apparence sans choisir les couleurs –

+0

@RishabhKhandelwal exemple et la bibliothèque de tiers, Si vous ne trouvez toujours pas votre problème de mise à jour votre question avec votre code autre que je consacre votre question, Cependant, je recommande de revoir Java ** UIManager ** classe https://docs.oracle.com/javase /7/docs/api/javax/swing/UIManager.html et oracle L & F docs https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/lookandfeel/LookAndFeelDemoProject/src/lookandfeel/LookAndFeelDemo.java –