1

我使用这段代码:

UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

我想覆盖MotifBorders(MotifBorders 的另一个来源)的satic内部类ButtonBorderpaintBorder方法并使用它,但我保留了方案颜色,我不知道这个 LAF 最初使用的是什么颜色(LookAndFeel)。

JButton jb = new JButton(someIcon);
BorderUIResource.CompoundBorderUIResource bc = 
    (BorderUIResource.CompoundBorderUIResource)jb.getBorder();

MotifBorders.ButtonBorder oldMotifBB =
    (MotifBorders.ButtonBorder)bc.getOutsideBorder();

MotifBorders.ButtonBorder newMotifBB = new MotifBorders.ButtonBorder(
    shadow,
    highlight, 
    WHAT_ARGUMENT?,  /*darkShadow (Originally No defined)*/
    focus) {
  @Override public void paintBorder(
      Component c, Graphics g, int x, int y, int w, int h) {
      //Changes Code
  }
};
4

1 回答 1

1

检查这个网站

MotifBorders.ButtonBorder newMotifBB = new MotifBorders.ButtonBorder(
    UIManager.getColor("Button.shadow"),        /*shadow*/
    UIManager.getColor("Button.highlight"),         /*highlight*/
    UIManager.getColor("Button.darkShadow"),  /*darkShadow (Originally No defined)*/
    UIManager.getColor("activeCaptionBorder")   /*focus*/) {
  @Override public void paintBorder(
      Component c, Graphics g, int x, int y, int w, int h) {
      //Changes Code
  }
};
于 2017-06-02T01:36:32.770 回答