setopaque java_java中setOpaque()用法

这是我在写的第一篇博客,本人本人比较懒,即使有一些新的东西想写出来,到最后还是不了了之。这篇博客算是一个新的开始吧!

setOpaque(true/false);看看API文档是怎么说的:

“if true the component paints every pixel within its bounds.

Otherwise, the component may not paint some or all of its pixels, allowing the underlying pixels to

show through.”。

即如果设置为true的话,原样显示组件中的每个像素,也就是正常显示;这里主要讲解设置为false时。

当设置为false时,组件并未不会显示其中的某些像素,允许控件下面的像素显现出来。

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package mainclass;

import java.awt.Color;

import java.awt.FlowLayout;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class MainClass extends JFrame {

public MainClass() {

super("Opaque JPanel Demo");

setSize(400, 200);

setDefaultCloseOperation(EXIT_ON_CLOSE);

JPanel opaque = createNested(true);

JPanel notOpaque = createNested(false);

getContentPane().setLayout(new FlowLayout());

getContentPane().add(opaque);

getContentPane().add(notOpaque);

}

public static void main(String[] args) {

MainClass oe = new MainClass();

oe.setVisible(true);

}

public JPanel createNested(boolean opaque) {

JPanel outer = new JPanel(new FlowLayout());

JPanel inner = new JPanel(new FlowLayout());

outer.setBackground(Color.BLUE);

inner.setBackground(Color.red);

inner.setOpaque(opaque);

inner.setBorder(BorderFactory.createLineBorder(Color.gray));

inner.add(new JButton("Button"));

outer.add(inner);

return outer;

}

}

运行结果如图:

4e34bd6dfe159d378403ff45e515cab0.png

如图,第一个panel中inner设置setOpaque(true),则inner区域中的背景色红色就会遮挡住外层组件中的蓝色;而在第二个panel中,由于inner设置为setOpaque(false),则inner区域中的背景色就是透明的了,因此就显示为外围组件outer的颜色蓝色。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `setOpaque()`是Java Swing的一个方法,它用于设置组件的不透明度。当将组件的`opaque`属性设置为`true`时,组件将完全不透明,即使它的背景是透明的。当将其设置为`false`时,组件将变得透明,允许其下方的组件或背景显示出来。 例如,要将一个JPanel设置为不透明,可以使用以下代码: ``` JPanel panel = new JPanel(); panel.setOpaque(true); ``` 这将使JPanel变得不透明,其背景颜色或图像将完全填充该组件。如果要将其设置为透明,可以使用以下代码: ``` JPanel panel = new JPanel(); panel.setOpaque(false); ``` 这将使JPanel变得透明,允许其下方的组件或背景显示出来。 ### 回答2: setOpaqueJava用于设置组件是否透明的方法。组件的透明度指的是组件是否显示其后面的组件或画面。 使用setOpaque方法可以设置组件的透明度。当参数为true时,组件将不透明;当参数为false时,组件将透明。通过设置组件的透明度,可以实现一些特殊的效果,比如在不影响组件的交互和功能的前提下,让组件显示为半透明或完全透明的状态。 该方法主要用于Swing编程的图形界面设计。在使用setOpaque方法时,需要注意以下几点: 1. 组件只有在已经添加到容器并可见的情况下,才能通过setOpaque方法设置透明度。因此,在使用该方法前,需要确保组件已经添加到容器。 2. 组件的父容器也需要设置成透明,否则即使该组件设置为透明,也无法显示透明的效果。 3. 组件如果设置为透明,那么它的子组件也将会被设置为透明。 总之,通过setOpaque方法的设置,可以实现组件的透明效果,从而达到更加丰富和灵活的界面设计。在实际应用,可以根据需要选择合适的透明度,来实现各种不同的视觉效果。 ### 回答3: setOpaque()方法是Java用于设置组件的透明度的方法。当一个组件的setOpaque()方法被设置为true时,该组件将完全不透明;当该方法被设置为false时,该组件将是透明的。 在Java SwingsetOpaque()方法主要用于面板组件,如JPanel。当一个面板组件被设置为不透明时,它将完全覆盖在其父组件的身上,而不会透过显示父组件的背景。这在创建背景具有特定颜色、图片或其他样式的面板时非常有用。 通过调用setOpaque(true),可以确保一个面板或其他组件占用其完整的空间,并且不透过显示任何背景。这对于需要在面板上添加其他组件,并希望确保它们不透过自身背景显示的情况非常有用。 另一方面,通过调用setOpaque(false),面板组件将是透明的。这意味着它将显示其父组件的背景,并且任何在面板上添加的组件也将透过面板显示父组件的背景。这对于创建具有渐变、半透明或其他特殊效果的面板非常有用。 总结来说,setOpaque()方法允许我们控制组件的透明度。通过设置为true,一个组件将是完全不透明的,会遮盖住其后面的其他组件;通过设置为false,一个组件将是透明的,会显示其后面的其他组件及其父组件的背景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值