【问题标题】:remove blue color from JTabbedPane从 JTabbedPane 中删除蓝色
【发布时间】:2011-03-04 00:40:59
【问题描述】:

这是我第一次使用 JTabbedPane。似乎默认外观在选项卡上和组件本身周围显示蓝色边框。如何禁用该效果?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    嗯,通过将 LookAndFeel 设置为 SystemLookAndFeel(或任何其他外观)来消除这种“效果”的一种简单快捷的方法:

        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName());
    

    请阅读这篇文章,以便您了解有关该主题的更多信息:http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

    【讨论】:

      【解决方案2】:

      使用“UIManager”改变外观

                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled+MouseOver].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled+Pressed].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+MouseOver+Selected].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+Pressed+Selected].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+Selected].backgroundPainter", new BackgroundPainter(Color.GRAY));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[MouseOver+Selected].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Pressed+Selected].backgroundPainter", new BackgroundPainter(Color.white));
                  UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Selected].backgroundPainter", new BackgroundPainter(Color.white));
      

      BackgroundPainter 类

      public class BackgroundPainter implements Painter<JComponent> {
      
      private Color color = null;
      
      BackgroundPainter(Color c) {
          color = c;
      }
      
      @Override
      public void paint(Graphics2D g, JComponent object, int width, int height) {
          if (color != null) {
              g.setColor(color);
              g.fillRect(0, 0, width - 1, height - 1);
          }
      }
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-17
        • 1970-01-01
        相关资源
        最近更新 更多