0
UIManager
을 사용하여 지금까지 내 애플리케이션 UI의 스타일을 지정했습니다. ServiceUI.printDialog
을 사용하여 만든 인쇄 대화 상자를 제외한 모든 항목이 정상적으로 작동합니다. 예를 들어 많은 UI 스타일을 상속 받았다고 생각합니다. 어두운 배경과 흰색 텍스트이지만 문제는 그룹의 레이블 색상이 변경되지 않았습니다. 나는 아래 이미지에서 이것을 돌았습니다. 다음과 같이자바 스윙 인쇄 대화 상자 GroupLayout 레이블 색상
인쇄 대화 상자를 만드는 데 사용되는 코드는 다음과 같습니다
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));
}
내 패널 주변 경계도되지 않고 다음과 같이
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);
내 UIManager
코드는 내 어두운 배경색으로 채워져있다. 이것에 대한 도움이 많이 감사합니다! 감사.
UIManager.put("TitledBorder.titleColor", Color.WHITE));
: