рдЬрд╛рд╡рд╛ рдореЗрдВ рдЦрд╛рд▓

рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрдорд░реНрд╢рд┐рдпрд▓ рдФрд░ рдлреНрд░реА рд▓реБрдХрдПрдВрдбрдлреЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВред рдПрд▓рдПрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрднрдЧ рдмрд┐рдирд╛ рдХреЛрдбрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдереАрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ LAF рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрджрд╛рд░реНрде рд╣реИред рдЗрд╕рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдорд╛рдирдХ рдШрдЯрдХ рдФрд░ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдЦрд╛рд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рдЫрд╡рд┐

рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЦрд╛рд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рд░реНрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрджрд╛рд░реНрде рдХреЛ рдЬреЛрдбрд╝реЛ

- рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрджрд╛рд░реНрде рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
SubstanceLookAndFeel laf = new SubstanceGeminiLookAndFeel(); UIManager.setLookAndFeel(laf); 

- рдЖрдкрдХреЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреА рд╕рд┐рд╕реНрдЯрдо рд╕рдЬрд╛рд╡рдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
 JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); 

- рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛ рдореЗрдиреВ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 UIManager.put(SubstanceLookAndFeel.SHOW_EXTRA_WIDGETS, Boolean.TRUE); 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдВрдбреЛ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪреА рд╕реЗ рдПрдХ рд╡рд┐рд╖рдп рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднрдВрдбрд╛рд░рдг

рдЖрдк рд╕реЗрдЯрд╕реНрдХрд┐рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╖рдп рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рд╕реЗ рдкрджрд╛рд░реНрде рдХреА рддреНрд╡рдЪрд╛ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рдмрдЬреЗрдХреНрдЯ рдХрд╛ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рд╕рдмреНрд╕реНрдЯреЗрдВрд╕ рд▓реБрдХрдПрдВрдбрдПрдлреЗрд▓.рдЧреЗрдЯрдХрдВрдЯреНрд░реЗрд╕рдХрд┐рди () рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред GetClass ()ред GetCanonicalName ()ред рдпрд╣ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдорд╛рдирдХ рдЧреБрдг рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╢рдЯрдбрд╛рдЙрди рдкрд░ рд╕реЗрд╡ рдлрдВрдХреНрд╢рди рдХреЛ рд╣реБрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдПред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛:

рдЫрд╡рд┐

рдкреВрд░реНрдг рддреНрд╡рдЪрд╛ рд╕рдорд░реНрдерди рдХреЛрдб

 package insubstantial; import javax.swing.*; import java.awt.*; import org.pushingpixels.substance.api.*; import org.pushingpixels.substance.api.skin.*; import java.util.*; import java.io.*; public class Insubstantial { public static void setupSubstance() { try { final String fileName = System.getProperty("user.home") + System.getProperty("file.separator") + "insubstantial.txt"; final Properties properties = new Properties(); org.pushingpixels.substance.api.SubstanceLookAndFeel laf = new SubstanceGeminiLookAndFeel(); UIManager.setLookAndFeel(laf); UIManager.put(SubstanceLookAndFeel.SHOW_EXTRA_WIDGETS, Boolean.TRUE); JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { try { String skinClassName = SubstanceLookAndFeel.getCurrentSkin().getClass().getCanonicalName(); properties.setProperty("skinClassName", skinClassName); properties.store(new FileOutputStream(fileName), fileName); } catch (Throwable t) { t.printStackTrace(); } } }); properties.load(new FileInputStream(fileName)); String skinClassName = properties.getProperty("skinClassName"); laf.setSkin(skinClassName); } catch (Throwable t) { t.printStackTrace(); } } public static void main(String[] args) { setupSubstance(); EventQueue.invokeLater(new Runnable() { @Override public void run() { new TestGUI().setVisible(true); } }); } } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рдиреНрдпреВрдирддрдо рд╣реИ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдкрджрд╛рд░реНрде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХрд▓рд┐рдд рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдкрджрд╛рд░реНрде рдФрд░ рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА

рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреА рдЦрд╛рд▓ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
- рд╡рдлрд╛рджрд╛рд░реА рдмрдврд╝рд╛рдирд╛ред рдЖрдорддреМрд░ рдкрд░ рд▓реЛрдЧ рдЗрд╕реЗ рддрдм рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЙрдирдХреЗ рдкрд╛рд╕ "рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ" рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ "рдореВрд▓" рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?
- рдЬрдбрд╝рддрд╛ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Microsoft Office, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдереАрдо рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ:
рдЫрд╡рд┐

Source: https://habr.com/ru/post/In128755/


All Articles