G
Gast
Gast
Wie kann man in einer Applikation Objekte mit unterschiedlichem LAF erzeugen?
package src;
import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class CompB{
private static JFrame thisFrame=new JFrame();
public static void main(String[] args){
ArrayList labels = new ArrayList();
labels.add("Kaffee");
labels.add("Espresso");
labels.add("Cappuccino");
labels.add("Muckefuck");
labels.add("Java");
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(null);
for(int i = 0; i < labels.size(); i++) {
JButton button = new JButton(labels.get(i).toString());
button.setBounds(110,i*24+10,90,20);
buttonPanel.add(button);
setLookAndFeel(button,i%3);
JLabel label = new JLabel(labels.get(i).toString());
label.setBounds(10,i*24+10,90,20);
buttonPanel.add(label);
}
thisFrame.add(buttonPanel);
thisFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
thisFrame.setSize(300,400);
thisFrame.setTitle("test");
thisFrame.setVisible(true);
}
private static void setLookAndFeel(Component component,int i)
{
try
{
if(i==0){
UIManager.setLookAndFeel( UIManager.getLookAndFeel() );
}else{
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
}
SwingUtilities.updateComponentTreeUI(component);
}
catch ( Exception e )
{}
}
}
private static void setLookAndFeel(JButton component,int i)
{
try
{
if(i==0){
UIManager.setLookAndFeel( UIManager.getLookAndFeel() );
}else{
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
}
SwingUtilities.updateComponentTreeUI(component);
component.updateUI();
}
catch ( Exception e )
{}
}