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
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.