Java 使用包级访问扩展类
Java 1.6具有Synth plaf类,具有包级访问权限 我试图扩展这些Java 使用包级访问扩展类,java,swing,look-and-feel,nimbus,uimanager,Java,Swing,Look And Feel,Nimbus,Uimanager,Java 1.6具有Synth plaf类,具有包级访问权限 我试图扩展这些 包javax.swing.plaf.synth import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; class MyCheckBoxUI extends SynthCheckBoxUI { public static ComponentUI createUI(JComponent b) { return ne
包javax.swing.plaf.synth
import javax.swing.JComponent;
import javax.swing.plaf.ComponentUI;
class MyCheckBoxUI extends SynthCheckBoxUI {
public static ComponentUI createUI(JComponent b) {
return new MyCheckBoxUI();
}
}
但是,在实例化时,此操作失败
线程“main”java.lang.IllegalAccessError中出现异常:类javax.swing.plaf.synth.MyCheckBoxUI无法访问其超类javax.swing.plaf.synth.SynthCheckBoxUI
public class TestApp {
public static void main(String[] args) throws Throwable {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
UIManager.put("CheckBoxUI", "javax.swing.plaf.synth.MyCheckBoxUI");
JFrame frame = new JFrame();
frame.add(new JCheckBox("Hello", true));
frame.pack();
frame.setVisible(true);
}
}
有谁能建议我如何避开这种情况吗。我必须坚持JDK1.6