Sábado, Fevereiro 03, 2007

Substance Look and Feel

O objetivo do Substance Look & Feel é prover um look and feel altamente configurável e customizável. Requer JDK 5.0 + e está disponível sob a licença BSD.

Substance é altamente configurável porque disponibiliza uma ampla gama de skins, temas, diferentes formatos de botões, watermarks. E é extensível porque fornece API para criar novos skins, temas, watermarks e assim por diante.

Características

  • Diferentes skins - conjunto de temas, watermark e demais configurações previamente definidos
  • Inúmeros temas - conjunto de informações que permite obter uma interface consistente em diferentes estados visuais
  • Watermarks - imagens mostradas no fundo de uma interface gráfica Swing
  • Ícones nativos no JFileChooser
  • Alinhanhamento de itens no menu
  • Preciso micro-design
  • Fade animation effects
  • Sofisticadas CellRenderer's para JTable's, JTree's e JList's

Substance in Action (1)

Faça o download do Substance L&F, adicione a biblioteca ao classpath do projeto e utilize o método setLookAndFeel(LookAndFeel laf), de UIManager, durante a execução de main para alterar o look and feel programaticamente.

try {
.....// Define o look and feel.
.....UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
.....// Escurece o tema.
.....SubstanceLookAndFeel.setCurrentTheme(new SubstanceCremeTheme().shade(0.1));
.....// Define o watermark.
.....SubstanceLookAndFeel.setCurrentWatermark(new SubstanceMetalWallWatermark());
.....// Ajusta a forma dos botões.
.....SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper());
.....// Gradient painters for buttons.
.....SubstanceLookAndFeel.setCurrentGradientPainter(new WaveGradientPainter());
.....// Faz com que o watermark vaze (bleed) por componentes opacos, como JTextField's.
.....// Note a área de texto da figura abaixo.
.....UIManager.put(SubstanceLookAndFeel.WATERMARK_TO_BLEED, Boolean.TRUE);
.....// Ajusta localização e quantidade de botões da bara de rolagem (scrolbar)
.....// Perceba na figura abaixo que a scrolbar possui três botões.
.....UIManager.put(SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY,
....................SubstanceConstants.ScrollPaneButtonPolicyKind.MULTIPLE);
} catch (UnsupportedLookAndFeelException ex) {
.....ex.printStackTrace();
}

// Mantém a JTable opaca, não deixando o watermark vazar (bleed).
table.putClientProperty(SubstanceLookAndFeel.WATERMARK_TO_BLEED, Boolean.FALSE);

Substance In Action (2)

Existem watermarks padrões no Substance, mas qualquer arquivo de imagem pode servir como watermark.

SubstanceLookAndFeel.setCurrentWatermark(new.SubstanceImageWatermark(
.....
..........ModelMat.class.getResourceAsStream("/org/modelmat/resources/images/modelmat.gif")));
SubstanceLookAndFeel.setImageWatermarkKind(
...............SubstanceConstants.ImageWatermarkKind.SCREEN_TILE);


Escolha a aparência da GUI através de skins.

UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
SubstanceLookAndFeel.setSkin(new OfficeBlue2007Skin());


Substance & NetBeans

Esse artigo mostra como alterar o look and feel do NetBeans para utilizar o Substance, usando um plugin desenvolvido por Kirill Grouchnikov. Esse plugin está disponível no nbextras.org.

Assim que o plugin estiver instalado, é fácil alterar o formato de botões e temas e adicionar marca d'água (watermark) personalizada. Todas essas opções estão disponíveis sob o menu view.


Mais Substance

Substance oferece grande quantidade de recursos para turbinar a interface gráfica de um aplicativo. Além das funcionalidades já citadas nesse artigo, merecem menção:

Veja também:

Veja mais sobre look and feel em:
Fontes Utilizadas:

0 comentários: