2017-01-12 5 views
0

J'ai utilisé le UIManager pour styler l'interface utilisateur de mon application jusqu'à présent. Tout va bien, sauf dans mon dialogue d'impression, créé en utilisant ServiceUI.printDialog. Je vois qu'il a hérité beaucoup de mon style d'interface utilisateur, par exemple. le fond sombre et le texte blanc, mais le problème est que la couleur des étiquettes pour les groupes n'a pas changé. J'ai encerclé ceux-ci dans l'image ci-dessous.Java Swing Print Dialog Couleur de l'étiquette GroupLayout

enter image description here

Le code utilisé pour créer la boîte de dialogue d'impression est la suivante:

PrintService[] availableServices = PrintServiceLookup 
        .lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); 

PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); 

PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); 

attributes.add(new Copies(1)); 
attributes.add(MediaSizeName.ISO_A4); 
attributes.add(new JobName(MainFrame.this.survey.jobName + "-Summary", null)); 

Dimension centre = ETools.getCentredWindowDim(new Dimension(300, 300)); 

PrintService service = ServiceUI.printDialog(null, 
        centre.width, centre.height, availableServices, 
        defaultService, null, attributes); 

Mon code UIManager est comme suit:

private void styleUserInterface() { 

    UIManager.put("Panel.background", Color.decode(Colors.BG)); 

    UIManager.put("TextField.background", Color.decode(Colors.TEXT_BG)); 
    UIManager.put("TextField.foreground", Color.decode(Colors.FONT_GRAY)); 
    UIManager.put("TextField.border", BorderFactory.createLineBorder(Color.decode(Colors.LIGHT_GRAY), 1)); 

    UIManager.put("Label.foreground", Color.decode(Colors.FONT_WHITE)); 

    UIManager.put("Button.background", Color.decode(Colors.BUTTON_BG)); 
    UIManager.put("Button.foreground", Color.decode(Colors.FONT_WHITE)); 
    UIManager.put("Button.border", BorderFactory.createCompoundBorder(
      BorderFactory.createLineBorder(Color.decode(Colors.LIGHT_GRAY), 1), 
      BorderFactory.createEmptyBorder(GAP_STANDARD, 
        GAP_STANDARD, 
        GAP_STANDARD, 
        GAP_STANDARD))); 

    UIManager.put("ComboBox.background", Color.decode(Colors.TEXT_BG)); 
    UIManager.put("ComboBox.foreground", Color.decode(Colors.FONT_GRAY)); 
    UIManager.put("ComboBox.border", BorderFactory.createLineBorder(Color.decode(Colors.LIGHT_GRAY), 1)); 

    UIManager.put("RadioButton.background", Color.decode(Colors.BG)); 
    UIManager.put("RadioButton.foreground", Color.decode(Colors.FONT_WHITE)); 

    UIManager.put("CheckBox.background", Color.decode(Colors.BG)); 
    UIManager.put("CheckBox.foreground", Color.decode(Colors.FONT_WHITE)); 
    UIManager.put("CheckBox.disabledText", Color.decode(Colors.FONT_DISABLED)); 
} 

La frontière autour de mon panneau est pas non plus rempli de ma couleur de fond sombre. Toute aide à ce sujet est très appréciée! Merci.

Répondre

0

Je compris comment changer la couleur de ces étiquettes en utilisant `UIManager » en utilisant les éléments suivants:

UIManager.put("TitledBorder.titleColor", Color.WHITE));