Estou desenvolvendo um aplicativo de desktop com Java Swing para uso pessoal. Estou precisando de um visual bonito para o meu aplicativo. Como posso fazer isso usando Java ou uma API de terceiros?
Estou desenvolvendo um aplicativo de desktop com Java Swing para uso pessoal. Estou precisando de um visual bonito para o meu aplicativo. Como posso fazer isso usando Java ou uma API de terceiros?
Respostas:
Existem muitas possibilidades para os LaFs:
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
parâmetro à invocação de java.
Você pode experimentar o L&F que estou desenvolvendo - WebLaF
Ele combina três partes necessárias para o desenvolvimento bem-sucedido da interface do usuário:
Binários: https://github.com/mgarin/weblaf/releases
Fonte: https://github.com/mgarin/weblaf
Licenças: GPLv3 e Commercial
Alguns exemplos mostrando como são os componentes do WebLaF:
A principal razão pela qual eu comecei com um L&F totalmente novo é que a maioria dos L&F existentes não tem flexibilidade - na maioria dos casos, você não pode modificá-los novamente (é possível alterar apenas algumas cores e ativar / desativar alguns elementos da interface do usuário na melhor das hipóteses) e / ou existem apenas maneiras inconvenientes de fazer isso. É ainda pior quando se trata de modelagem de componentes personalizados / de terceiros - eles não se parecem com outros componentes modelados por L&F específico ou totalmente diferentes - que fazem com que seu aplicativo pareça pouco profissional e desagradável.
Meu objetivo é fornecer um L&F totalmente personalizável com um pacote de componentes úteis e amplamente conhecidos (por exemplo: seletor de datas, tabela em árvore, painéis encaixáveis e de documentos e muitos outros) e gerentes e utilitários úteis adicionais, que reduzirão o quantidade de código necessária para integrar rapidamente o WebLaF ao seu aplicativo e ajudar a criar UIs impressionantes usando o Swing.
Você também pode usar o JTattoo ( http://www.jtattoo.net/ ), que possui alguns temas interessantes que podem ser usados.
Basta baixar o jar e importá-lo para o seu caminho de classe ou adicioná-lo como uma dependência independente:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Aqui está uma lista de alguns dos temas interessantes que eles têm disponíveis:
Saudações
Aqui está o código que cria uma caixa de diálogo que permite ao usuário do seu aplicativo alterar a aparência com base nos sistemas do usuário . Como alternativa, se você pode armazenar a aparência desejada em seu aplicativo, eles podem ser "portáteis", que é o resultado desejado.
public void changeLookAndFeel() {
List<String> lookAndFeelsDisplay = new ArrayList<>();
List<String> lookAndFeelsRealNames = new ArrayList<>();
for (LookAndFeelInfo each : UIManager.getInstalledLookAndFeels()) {
lookAndFeelsDisplay.add(each.getName());
lookAndFeelsRealNames.add(each.getClassName());
}
String changeLook = (String) JOptionPane.showInputDialog(this, "Choose Look and Feel Here:", "Select Look and Feel", JOptionPane.QUESTION_MESSAGE, null, lookAndFeelsDisplay.toArray(), null);
if (changeLook != null) {
for (int i = 0; i < lookAndFeelsDisplay.size(); i++) {
if (changeLook.equals(lookAndFeelsDisplay.get(i))) {
try {
UIManager.setLookAndFeel(lookAndFeelsRealNames.get(i));
break;
}
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
err.println(ex);
ex.printStackTrace(System.err);
}
}
}
}
}