У меня есть необходимость изменить стиль шрифта и размер всего (колебательного) приложения, но только для определенных компонентов (в основном JLabel, JTextArea, JTextField, JComboBox, JTable).
У меня есть этот кусок code
public void updateComponent(final Component component, final Font font){
if(component instanceof JComponent){
((JComponent)component).updateUI();
}
if(component instanceof Container){
Component[] children = ((Container)component).getComponents();
for(Component child : children){
updateComponent(child, font)
}
}
if(component instanceof JLabel || component instanceof JTextArea || component instanceof JComboBox || component instanceof JTextField || component instanceof JTable){
component.setFont(font);
}
}
, но этот код меняет шрифт для all JLabel, JTextArea, JTextField, JComboBox, JTable, хотя я хочу его только для определенных экземпляров этих классов.
Я знаю, что могу определять и создавать n классы, расширяющие исходный класс, и проверять их, но я действительно не люблю создавать n в основном пустые классы для этого.
public class JLabel2 extends JLabel{}
public class JTextArea2 extends JTextArea{}
...
и
if(component instanceof JLabel2 || component instanceof JTextArea2 || ...){
Есть ли более простое решение? Спасибо