• Swing-setOpaque()用法-入门


    先看API:

    public void setOpaque(boolean isOpaque)

    如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。 

    对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButton 和 JTree),此属性的默认值与外观有关。 

    参数: isOpaque - 如果此组件应该是不透明的,则为 true

    Opaque是不透明的意思,当设置为false时,组件是透明的,可显示下方的组件。下面是测试用例:

     

    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    /*
     * 2015-06-15
     */
    
    public class SetOpaqueDemo extends JFrame {
    
      public SetOpaqueDemo() {
        super("setOpaqueDemo");
        setSize(400, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    
        //不透明,看到黑色顶层
        JPanel opaquePanel = createNested(true);
        //透明,露出白色底层
        JPanel notOpaque = createNested(false);
    
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(opaquePanel);
        getContentPane().add(notOpaque);
      }
    
      
    
      public JPanel createNested(boolean opaque) {
        JPanel outer = new JPanel(new FlowLayout());
        JPanel inner = new JPanel(new FlowLayout());
        //底层panel为白色,顶层为黑色    
        outer.setBackground(Color.white);
        inner.setBackground(Color.black);
    
        inner.setOpaque(opaque);
        inner.setBorder(BorderFactory.createLineBorder(Color.gray));
        inner.setPreferredSize(new Dimension(40, 20));
        outer.add(inner);
    
        return outer;
      }
      
      public static void main(String[] args) {
            SetOpaqueDemo setOpaqueDemo = new SetOpaqueDemo();
            setOpaqueDemo.setVisible(true);
          }
    }

    运行效果如下图所示:

    运行效果图

    可见,setOpaque(false)使panel变成了透明效果。

  • 相关阅读:
    开开心心
    HOW HE/SHE'S SEEN
    天池
    sql server deadlock跟踪的四种方法
    reduce 好东西
    object方法
    页面横向滚动 联动 进度条
    浅拷贝、深拷贝
    图片下载
    axios简单封装
  • 原文地址:https://www.cnblogs.com/pzy4447/p/4579360.html
Copyright © 2020-2023  润新知