Page 1 sur 1
[Java VM] Interface, boutons, etc. (en cours)
Publié : lun. 17 janv. 2011, 09:36
par Siriru
Hello !
Je n'arrive pas à améliorer le style de mes interfaces d'applications écrites en Java. Sous windows ou macOS, c'est plutôt joli, mais sous linux, p.ex. les boutons sont rectangulaires et moches : comment y remédier, y a t'il possibilité d'appliquer des thèmes ou quelque chose à configurer ?
Merci !
Re: [Java VM] Interface, boutons, etc. (en cours)
Publié : lun. 17 janv. 2011, 10:26
par FoolEcho
Re: [Java VM] Interface, boutons, etc. (en cours)
Publié : lun. 17 janv. 2011, 11:17
par benjarobin
@FoolEcho Je ne pense pas que tu ai saisi l’ampleur de la mocheté. Un screen serai le bienvenue bien sure. Cela m'était déjà arrivé il y a fort longtemps sous Ubuntu de mémoire, et j'avais su résoudre le problème par une histoire de variable d’environnement ou autre

Je ne me rappelle plus...
Re: [Java VM] Interface, boutons, etc. (en cours)
Publié : lun. 17 janv. 2011, 13:33
par FoolEcho
Je pense que la mocheté est subjective et que le tutoriel répond à toutes les questions (c'est lundi, j'fais mon benjarobin

)
Bon d'accord, Sun n'était pas très inspiré.
Méthode 1, changement dans le code pour obtenir le rendu GTK (ou tout autre rendu désiré) avec un test pourri:
Code : Tout sélectionner
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class MainFrame {
public static void main(String[] args) {
try {
// String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
// String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
JFrame frame = new JFrame("test");
JPanel panel = new JPanel();
panel.add(new JButton("nothing"));
panel.add(new JButton("always nothing"));
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
} catch (Exception e ){
e.printStackTrace();
}
}
}
Cf. le tutoriel pour changement à la volée, option en ligne de commande, etc...
Méthode 2, prise en charge permanente sous Arch (openjdk-6):
Créer un fichier /usr/lib/jvm/java-6-openjdk/jre/lib/swing.properties contenant:
Puis démarrer n'importe quel appli java (de préfèrence une qui n'a pas de thème défini)...