LAF

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Wie kann man in einer Applikation Objekte mit unterschiedlichem LAF erzeugen?
 

thE_29

Top Contributor
Sollen es gleiche Komponenten sein?

Also mehr mals verschiedene JButtons oder verschiedene Komponenten?
 

thE_29

Top Contributor
So, hab mich ein bißchen mit den UIDefaults gespielt!

Es ist schon möglich verschieden LNF zu nutzen, nur muss man eine andere UI Klasse für die jeweilige Komponente reinladen, die Defaultfarben/Schriften setzen, etc...
Alles sehr umständlich.
 
G

Guest

Gast
hab ich hier einen Denkfehler oder müsste bei Muckefuck das LAF nicht ändern?

Code:
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 ) 
            {} 
    } 


}
 
G

Guest

Gast
leider nicht bei mir

Code:
    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 ) 
            {} 
    }
 
G

Gast

Gast
mir fehlt da echt die Erfahrung, aber kann ich das nicht irgendwie über meinButton.setUI() geregelt bekommen?
 
Status
Nicht offen für weitere Antworten.

Oben