我在Java Swing应用程序中使用Substance look and feel版本6.0。这个应用程序对我来说运行得很好,但是一些应用程序用户,特别是那些使用Windows7的用户得到了一个实质性的异常:
java.lang.InternalError: Unable to instantiate org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.colorchooser.ColorPalettesChooser
at org.pushingpixels.substance.internal.ui.SubstanceColorChooserUI.createDefaultChoosers(SubstanceColorChooserUI.java)
at org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.Quaqua13ColorChooserUI.__org__pushingpixels__substance__internal__contrib__randelshofer__quaqua__Quaqua13ColorChooserUI__installUI(Quaqua13ColorChooserUI.java)
at org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.Quaqua13ColorChooserUI.installUI(Quaqua13ColorChooserUI.java)
at org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.Quaqua14ColorChooserUI.__org__pushingpixels__substance__internal__contrib__randelshofer__quaqua__Quaqua14ColorChooserUI__installUI(Quaqua14ColorChooserUI.java)
at org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.Quaqua14ColorChooserUI.installUI(Quaqua14ColorChooserUI.java)
at org.pushingpixels.substance.internal.ui.SubstanceColorChooserUI.__org__pushingpixels__substance__internal__ui__SubstanceColorChooserUI__installUI(SubstanceColorChooserUI.java)
at org.pushingpixels.substance.internal.ui.SubstanceColorChooserUI.installUI(SubstanceColorChooserUI.java)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JColorChooser.setUI(Unknown Source)
at javax.swing.JColorChooser.updateUI(Unknown Source)
at javax.swing.JColorChooser.(Unknown Source)
at javax.swing.JColorChooser.(Unknown Source)
at javax.swing.JColorChooser.(Unknown Source)
at org.jdesktop.swingx.JXColorSelectionButton.getChooser(JXColorSelectionButton.java)
at org.jdesktop.swingx.JXColorSelectionButton$1.propertyChange(JXColorSelectionButton.java)
at java.beans.PropertyChangeSupport.fire(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.awt.Component.firePropertyChange(Unknown Source)
at java.awt.Component.setBackground(Unknown Source)
at javax.swing.JComponent.setBackground(Unknown Source)此异常发生在以下代码的最后一行:
JXColorSelectionButton myColorSelectionButton = new JXColorSelectionButton();
myColorSelectionButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
myColorSelectionButton.setFocusPainted(false);
contentPane.add(myColorSelectionButton, cc.xy(29, 19));
/**
* Some code here
*/
myColorSelectionButton.setBackground( Color.WHITE ); // Excepton occurres here !!我找不到地方问这个实质性的问题,所以如果你能帮我,我将不胜感激。
发布于 2011-10-17 23:40:24
当前构建的it(它是Substance的维护分支)和SwingX没有显示此错误,因此它是一个已修复的错误。
下面是一个代码示例,位于
import java.awt.Color
import javax.swing.*
import org.jdesktop.swingx.JXColorSelectionButton
SwingUtilities.invokeAndWait {
@Grapes(
[@Grab(group='org.swinglabs', module='swingx-core', version='1.6.2-2'),
@Grab(group='com.github.insubstantial', module='substance-swingx', version='7.0') ]
)
JFrame frame = new JFrame("Test");
JXColorSelectionButton myColorSelectionButton = new JXColorSelectionButton();
myColorSelectionButton.setFocusPainted(false);
frame.add(myColorSelectionButton);
myColorSelectionButton.setBackground( Color.WHITE ); // Excepton occurres here !!
frame.pack()
frame.setVisible(true)
}相关的Maven坐标:
<dependency>
<groupId>com.github.insubstantial</groupId>
<artifactId>substance</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>org.swinglabs</groupId>
<artifactId>swingx-core</artifactId>
<version>1.6.2-2</version>
</dependency>
<dependency>
<groupId>com.github.insubstantial</groupId>
<artifactId>substance-swingx</artifactId>
<version>7.0</version>
</dependency>发布于 2011-09-15 15:32:32
Substance不再更新,并且在Java7上被破坏。
然而,有人通过分叉它并将其称为无关紧要的东西来重新开始这个项目:http://shemnon.com/speling/
它支持Java 7,并且似乎对下一次更新有很大的计划。
它应该像交换库一样简单,让它在您的项目中工作。
发布于 2011-09-15 15:12:51
我不知道实质内容,但在source code中可以看到,在实例化颜色选择器面板期间抛出任何异常时,都会抛出此InternalError。不幸的是(这里的代码很糟糕!)真正的例外是被吞噬的,因此您没有简单的方法来看待这一点。但是实际异常的堆栈跟踪被打印到System.err,因此您应该能够在某个地方看到此输出。此堆栈跟踪将为您提供有关此处问题所在的更多信息。
https://stackoverflow.com/questions/7427048
复制相似问题