Hi,
habe im Forum ein kleines Programm gefunden das die vorhandenen Look&Feels anzeigt sowie auswählbar macht.
Angezeigt werden metal, motif, gtk. Bei allen ist die Leiste mit den Buttosn minimieren, vergrößern, schließen allerdings wie mein Kde Theme "Plastik". Es sieht sehr nach QT aus ?
sun-jdk-1.5.0.08 und Eclipse 3.1 - sollte man damit nicht auch das L&F Ocean zur Auswahl haben?
greets
habe im Forum ein kleines Programm gefunden das die vorhandenen Look&Feels anzeigt sowie auswählbar macht.
Angezeigt werden metal, motif, gtk. Bei allen ist die Leiste mit den Buttosn minimieren, vergrößern, schließen allerdings wie mein Kde Theme "Plastik". Es sieht sehr nach QT aus ?
sun-jdk-1.5.0.08 und Eclipse 3.1 - sollte man damit nicht auch das L&F Ocean zur Auswahl haben?
greets
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Enumeration;
public class LaF extends JFrame implements ItemListener {
JCheckBox cb;
JButton b;
ButtonGroup lafGroup = new ButtonGroup();
UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
public LaF() {
setTitle("Look-and-Feel Demo");
// Zum Schliessen des JFrames wird eine neue Instanz der
// externen Klasse WindowClosingAdapter registriert
Container cp = getContentPane();
cp.setLayout(new GridLayout( 3, 1 ));
// Fuer jedes installierte Look and Feel wird nun eine JCheckBox
// erzeugt, ggf. selektiert, mit einem ItemListener versehen und
// anschliessend dem Layout und der ButtonGroup hinzugefuegt
for(int i=0, n=lafs.length; i<n; i++) {
cb = new JCheckBox(lafs[i].getName());
cp.add(cb);
b = new JButton("challo");
cp.add(b);
cb.setSelected(UIManager.getLookAndFeel().getName().equals(lafs[i].getName()));
cb.putClientProperty("lnf name", lafs[i]);
cb.addItemListener(this);
lafGroup.add(cb);
}
}
public void itemStateChanged(ItemEvent ie) {
cb = (JCheckBox) ie.getSource();
// Es werden nun die einzelnen Elemente der ButtonGroup
// ueberprueft, ob sie der Ausloeser der Aktion waren
Enumeration lafEnum = lafGroup.getElements();
while(lafEnum.hasMoreElements()) {
JCheckBox c = (JCheckBox) lafEnum.nextElement();
if(cb == c) {
JCheckBox c2 = (JCheckBox) ie.getSource();
// Wenn eines der Elemente selektiert wurde,
// soll versucht werden, das Look and Feel
// aller Swing-Elemente zu veraendern
if(c2.isSelected()) {
UIManager.LookAndFeelInfo info = (UIManager.LookAndFeelInfo)c2.getClientProperty("lnf name");
try {
UIManager.setLookAndFeel(info.getClassName());
SwingUtilities.updateComponentTreeUI(LaF.this);
} catch(UnsupportedLookAndFeelException e) {
} catch(ClassNotFoundException e) {
} catch(InstantiationException e) {
} catch(IllegalAccessException e) {
}
}
}
}
}
public static void main(String[] args) {
LaF laf = new LaF();
laf.setLocation (100, 100);
laf.setSize(230, 130);
laf.setVisible(true);
}
}