Java 使用包级访问扩展类

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

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 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