суббота, 2 октября 2010 г.

Swing: мелочи..

Писать десктопные приложения на java приходится редко, поэтому постоянно забываю пару мелочей. Запишу их тут, чтобы потом не искать снова.
Во-первых скины: в 21 веке мало кого устраивает стандартный вид swing-интерфейса. Можно, конечно сделать UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) и окошко приобретает привычный вид для нашей операционки. Но можно и поэлегантнее...
Например Substance: скачиваем библиотеку substance.jar, подключаем к проекту и устанавливаем UIManager.setLookAndFeel(new SubstanceGraphiteLookAndFeel()) или любой другой скин из довольно приличного набора. В рантайме потребуется ещё библиотека trident.jar, я нашёл её в исходниках substanse, которые можно скачать там же, на сайте проекта.
Во вторых, позиционирование окна:

  1.     private static void setCenterPosition(JFrame frame) {
  2.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  3.         Dimension frameSize = frame.getPreferredSize();
  4.         if (frameSize.height > screenSize.height) {
  5.             frameSize.height = screenSize.height;
  6.         }
  7.         if (frameSize.width > screenSize.width) {
  8.             frameSize.width = screenSize.width;
  9.         }
  10.         frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  11.     }