• 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变成了透明效果。

  • 相关阅读:
    深入学习JavaScript: apply 方法
    javascript中的sort()方法
    vertical-align的用法
    js中window.onload与jquery$(document).ready()的区别
    js两种定义函数的方式(调用声明先后的区别)
    jquery插件写法的模板
    对兼容ie浏览器所遇到的问题及总结
    ie 6下使用jquery的mouseover会出现抖动现象的解决方法
    清除ie8下input file 文件域的值的方法
    fabric简介(二)
  • 原文地址:https://www.cnblogs.com/pzy4447/p/4579360.html
Copyright © 2020-2023  润新知