Java 1.6 には、パッケージ レベルでアクセスできる Synth plaf クラスがあります。
私はこれらを拡張しようとします
package 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();
}
}
ただし、インスタンス化中に、これは失敗します
スレッド「メイン」の例外 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);
}
}
この状況を回避するにはどうすればよいか、誰でも提案できますか。jdk 1.6に固執する必要があります