20 Nisan 2018 Cuma

Swing UIManager Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
Bu sınıf normalde main metodunda çağrılır. EventQueue.invokeLater içinde çağırmaya gerek yok.

getCrossPlatformLookAndFeelClassName metodu
Şöyle yaparız. Windows'ta "javax.swing.plaf.MetalLookAndFeel" sonucunu alırız.
String plaf = UIManager.getCrossPlatformLookAndFeelClassName();
getDefaults metodu
Şöyle yaparız.
javax.swing.UIDefaults defaults = UIManager.getDefaults ();
getInstalledLookAndFeels metodu
Şöyle yaparız.
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
  if ("Nimbus".equals(info.getName())) {
    UIManager.setLookAndFeel(info.getClassName());
    break;
  }
}
Benim sistemimde kurulu LookAndFeelInfo nesneleri şöyle
Metal
Nimbus
CDE/Motif
Windows 
Windows Classic
Bunlardan en iyisi Nimbus. Açıklaması şöyle. Java  5'teki XMl tabanlı "Synth Look And Feel" dan daha iyi.
Nimbus is a polished cross-platform look and feel introduced in the Java SE 6 Update 10 (6u10) release.
Nimbus'taki Vertical Scrollbar kaybolmasını gidermek için şöyle yaparız.
LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
UIDefaults defaults = lookAndFeel.getDefaults();
defaults.put("ScrollBar.minimumThumbSize", new Dimension(30, 30));
getLookAndFeel metodu
Şöyle yaparız.
LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
getSystemLookAndFeelClassName metodu
Şöyle yaparız. Windows'ta "com.sun.java.swing.plaf.WindowsLookAndFeel" sonucunu alırız.
String plaf = UIManager.getSystemLookAndFeelClassName();
put metodu - Object + Object
Birinci parametre key, ikinci parametre value nesnesidir. Şöyle yaparız.
javax.swing.UIManager.put("RadioButton.background", Color.GRAY);
setLookAndFeel metodu - string
string olarak LookAndFeel metodunun class name'ini alır.
Örnek
Substance kütüphanesini kullanmak için şöyle yaparız.
UIManager.setLookAndFeel(new SubstanceSaharaLookAndFeel());
Örnek
Şöyle yaparız.
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
Örnek
Şöyle yaparız.
for (UIManager.LookAndFeelInfo laf: UIManager.getInstalledLookAndFeels()) {
  if ("Nimbus".equals(laf.getName()) {
    UIManager.setLookAndFeel(laf.getClassName());
    SwingUtilities.updateComponentTreeUI(frame);
  }
}
Örnek
İşletim sisminin kendi LookAndFeel'ini kullanmak için şöyle yaparız.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Örnek
Şöyle yaparız.
try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
         UnsupportedLookAndFeelException ex) {
  ex.printStackTrace();
}

Hiç yorum yok:

Yorum Gönder