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:
Dabei kommt folgende Exception:
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
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: