Exception bei Nachgeladenem Look-And-Feel

Smily0412

Mitglied
hoi,
ich würde meinem Programm gerne die möglichkeit geben, look-and-feels aus einer Jar nachzuladen. Dabei muss der User die URL zur Jar und die einstiegsklasse angeben.

zum Test habe ich mal folgenden kleinen Code geschrieben:

Java:
package org.stummi.page.main;

import java.net.URL;
import java.net.URLClassLoader;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class MainApplet extends JApplet{
	
	@Override
	public void init() {
		try {
			URL url = new URL("file:/home/mst/Desktop/liquidlnf.jar");
	    	ClassLoader classLoader = new URLClassLoader(new URL[] {url});
	    	Class<?> LaFClass = classLoader.loadClass("com.birosoft.liquid.LiquidLookAndFeel");
	    	LookAndFeel f = (LookAndFeel) LaFClass.newInstance();
	    	UIManager.setLookAndFeel(f);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		this.add(new JButton("test"));
	}
}

Dabei kommt folgende Exception:
UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=null,paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=test,defaultCapable=true]
java.lang.Error
at javax.swing.UIDefaults.getUIError(UIDefaults.java:711)
at javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:117)
at javax.swing.UIDefaults.getUI(UIDefaults.java:741)
at javax.swing.UIManager.getUI(UIManager.java:1012)
at javax.swing.JButton.updateUI(JButton.java:128)
at javax.swing.AbstractButton.init(AbstractButton.java:2149)
at javax.swing.JButton.<init>(JButton.java:118)
at javax.swing.JButton.<init>(JButton.java:91)
at org.stummi.page.main.MainApplet.init(MainApplet.java:26)
at sun.applet.AppletPanel.run(AppletPanel.java:419)
at java.lang.Thread.run(Thread.java:619)

Ich vermute mal, es liegt darran, dass ich bis jetzt nur die eine Klasse lade, die ich explitzit angebe, die jar aber natürlich weitere brauch, die sie selbst enthält.
Aber ich weis nicht, wie ich dem Entgegenwirken kann.

Kann mir da jemand weiterhelfen?

cu,
Smily0412

Edit: hat sich erledigt
Falls jemand anderes das selbe problem hat, ist das ein guter ansatz:
https://lists.xcf.berkeley.edu/lists/advanced-java/2001-January/015374.html
 
Zuletzt bearbeitet:
Zurück