hat jemand von Euch schon einmal mit Swing-Komponenten unter AIX gearbeitet? Oder unter einem anderen Unix-System? Vielleicht kann mir dann jemand bei folgendem Fehler helfen:
2001-12-07 11:28:00,450 [main] DEBUG Vertiffer - vertiffe(...): Erzeuge JEditorPane.
Problem creating javax.swing.plaf.metal.MetalLookAndFeel with method getUserTextFont and args { : java.lang.reflect.InvocationTargetException
java.lang.Exception: Stack trace
at java.lang.Exception.(Exception.java:44)
at java.lang.Thread.dumpStack(Thread.java:1007)
at javax.swing.UIDefaults$ProxyLazyValue.createValue(UIDefaults.java:670)
at javax.swing.UIDefaults.get(UIDefaults.java(Compiled Code))
at javax.swing.MultiUIDefaults.get(MultiUIDefaults.java(Compiled Code))
at javax.swing.UIDefaults.getFont(UIDefaults.java:223)
at javax.swing.UIManager.getFont(UIManager.java:494)
at javax.swing.plaf.basic.BasicTextUI.installDefaults(BasicTextUI.java:222)
at javax.swing.plaf.basic.BasicTextUI.installUI(BasicTextUI.java:642)
at javax.swing.JComponent.setUI(JComponent.java:327)
at javax.swing.text.JTextComponent.setUI(JTextComponent.java:583)
at javax.swing.text.JTextComponent.updateUI(JTextComponent.java:593)
at javax.swing.text.JTextComponent.(JTextComponent.java:567)
at javax.swing.JEditorPane.(JEditorPane.java:168)
at tui.ors.util.Vertiffer.vertiffe(Vertiffer.java:41)
at test.ors.util.VertifferTest.testeFall1(VertifferTest.java:47)
at test.ors.util.VertifferTest.main(VertifferTest.java:30)
Exception in thread "main" java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment
at java.lang.Class.forName1(Native Method)
at java.lang.Class.forName(Class.java:134)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:64)
at sun.awt.motif.MToolkit.(MToolkit.java:61)
at java.lang.Class.forName1(Native Method)
at java.lang.Class.forName(Class.java:134)
at java.awt.Toolkit$2.run(Toolkit.java:509)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:500)
at java.awt.Toolkit.getEventQueue(Toolkit.java:1132)
at java.awt.EventQueue.invokeLater(EventQueue.java:573)
at javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1147)
at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:870)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:756)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:698)
at javax.swing.text.DefaultCaret$UpdateHandler.propertyChange(DefaultCaret.java:1213)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(SwingPropertyChangeSupport.java(Compiled Code))
at javax.swing.JComponent.firePropertyChange(JComponent.java:3729)
at javax.swing.text.JTextComponent.setDocument(JTextComponent.java:660)
at javax.swing.plaf.basic.BasicTextUI.installUI(BasicTextUI.java:657)
at javax.swing.JComponent.setUI(JComponent.java:327)
at javax.swing.text.JTextComponent.setUI(JTextComponent.java:583)
at javax.swing.text.JTextComponent.updateUI(JTextComponent.java:593)
at javax.swing.text.JTextComponent.(JTextComponent.java:567)
at javax.swing.JEditorPane.(JEditorPane.java:168)
at tui.ors.util.Vertiffer.vertiffe(Vertiffer.java:41)
at test.ors.util.VertifferTest.testeFall1(VertifferTest.java:47)
at test.ors.util.VertifferTest.main(VertifferTest.java:30)
Der Quellkode der Klassenmethode (komplett, damit Ihr es vielleicht mal woanders benutzen könnt):
/\*\*
\* Erzeugt aus einem HTML-Dokument eine Grafikdatei im TIFF-Format.
\*
\* Die TIFF-Datei wird mit dem PackBits-Algorithmus komprimiert.
\*
\* @param htmlText HTML-Dokument als eine Zeichenkette
\* @return ver-TIFF-te Datei als byte-Array.
\*/
public byte[] vertiffe(String htmlText) {
cat.info("-\> vertiffe(\"" + htmlText + "\"): Start");
byte[] ergebnis = null;
cat.debug("vertiffe(...): Erzeuge JEditorPane.");
JEditorPane pane = new JEditorPane();
HTMLEditorKit kit = new HTMLEditorKit();
pane.setEditorKit(kit);
AbstractDocument document = (AbstractDocument) kit.createDefaultDocument();
document.setAsynchronousLoadPriority(-1);
pane.setDocument(document);
pane.setSize(595, 842);
cat.debug("vertiffe(...): Lade HTML-Text.");
try {
pane.read(new StringReader(htmlText), document);
} catch (IOException ioe) {
ioe.printStackTrace();
}
pane.setSize(new Dimension(595, maximum(new Double(pane.getPreferredSize().getHeight()).intValue(), 842)));
cat.debug("vertiffe(...): Drucke Grafik in Image.");
BufferedImage bi = new BufferedImage(pane.getWidth(), pane.getHeight(), BufferedImage.TYPE\_BYTE\_INDEXED);
Graphics2D g2 = bi.createGraphics();
pane.print(g2);
cat.debug("vertiffe(...): Kodiere Image als TIFF.");
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
TIFFEncodeParam encodeParam = new TIFFEncodeParam();
//encodeParam.setCompression(TIFFEncodeParam.COMPRESSION\_DEFLATE); // ContentManager-Client kennt diese Kompression nicht
//encodeParam.setDeflateLevel(9);
encodeParam.setCompression(TIFFEncodeParam.COMPRESSION\_PACKBITS);
ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF", os, encodeParam);
encoder.encode(bi);
ergebnis = os.toByteArray();
os.close();
} catch (IOException ioe) {
cat.error("vertiffe(...): Ausnahme beim Ver-TIFF-en: ", ioe);
}
cat.info("
Vielen Dank im Voraus
"Thomas Bahn"