概要

JCheckBoxのチェックアイコンの縁をフラットな描画に変更します。

サンプルコード

Box box1 = Box.createVerticalBox();
box1.setBorder(BorderFactory.createTitledBorder("setBorderPainted: false"));

JCheckBox c0 = new JCheckBox("setBorderPaintedFlat: false");
c0.setBorderPainted(false);
c0.setBorderPaintedFlat(false);
box1.add(c0);
box1.add(Box.createVerticalStrut(5));

JCheckBox c1 = new JCheckBox("setBorderPaintedFlat: true");
c1.setBorderPainted(false);
c1.setBorderPaintedFlat(true);
box1.add(c1);
View in GitHub: Java, Kotlin

解説

  • setBorderPainted(false): JCheckBox自体の縁を描画しない
    • setBorderPaintedFlat(false): JCheckBoxのチェックアイコンの縁をLookAndFeelのデフォルトで描画する
      • WindowsClassicLookAndFeelMotifLookAndFeelのデフォルトの縁は、立体的な描画になる
      • WindowsLookAndFeelのデフォルトの縁は、フラットな描画になるのでこのプロパティの影響を受けない
    • setBorderPaintedFlat(true): JCheckBoxのチェックアイコンの縁をフラットな描画にする
      • NimbusLookAndFeelのデフォルトの縁は、立体的な描画になるのでこのプロパティの影響を受けない
      • MetalLookAndFeelの縁は常にフラットで内側は立体的だがこのプロパティで内側の描画までフラットにはならない
  • setBorderPainted(true): JCheckBox自体の縁を描画する
    • WindowsLookAndFeelなどのデフォルトはfalse
    • NimbusLookAndFeelでは効果がない
    • JCheckBox#setBorderPaintedFlat(...)には影響しない

参考リンク

コメント