扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
android:background="#a000"
十年的陕西网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整陕西建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“陕西网站设计”,“陕西网站推广”以来,每个客户项目都认真落实执行。
这条属性第一位表示设置透明度0-f 越大表示越不透明
后面位表示RGB颜色的值
java swing中设置组件透明度的方法如下:
package src;
import java.awt.*;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MyPanel extends JPanel{
private Image image = null;
public MyPanel(Image image) {
this.image = image;
}
//固定背景图片,允许这个JPanel可以在图片上添加其他组件
protected void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
}
}
测试JFrame
package src;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test extends JFrame{
JPanel jpanel;
JLabel jlabel;
JButton jbutton;
Image image=new ImageIcon("image/a.jpg").getImage();
ImageIcon labIma=new ImageIcon("image/a.jpg");
Test(){
this.setIconImage(image);
this.setTitle("hello");
init();
this.add(jpanel);
}
public void init(){//本方法里面有三种显示图片的方法,两个实现了在图片上添加按钮的功能
/*第一种方法 通过JLabel简单的设置图片
jpanel=new JPanel();
jlabel=new JLabel();
jlabel.setIcon(labIma);
jpanel.add(jlabel);
*/
/*第二种方法 这是实现在JLabel添加图片同时在上面添加按钮功能,注意它里面的jpanel不用显示的添加到JFrame中,因此上面构造函数中的this.add(jpanel)要注释掉
jpanel = (JPanel) this.getContentPane(); //从JFrame 里面创建一个JPanel
jpanel.setOpaque(false); //JPanel 透明模式
jlabel = new JLabel(labIma); //创建个带背景图片的JLabel
this.getLayeredPane().add(jlabel, new Integer(Integer.MIN_VALUE));
jlabel.setBounds(0, 0, labIma.getIconWidth(), labIma.getIconHeight());
jpanel.setLayout(new FlowLayout());
JButton jb = new JButton("我是按钮");
jpanel.add(jb);
*/
/*第三种方法 通过重写JPanel中的paintComponent方法设置背景图片,然后在jpanel上添加组件
//通过背景图片设置图片 注意MyPanel是自己定义的一个类
jpanel=new MyPanel(image);
jbutton=new JButton();
jbutton.setText("haha");
jpanel.add(jbutton);
*/
}
public static void main(String args[])
{
Test t=new Test();
t.setSize(400,400);
t.setVisible(true);
}
在JDK6 Update 10以后版本,就有com.sun.awt.AWTUtilities这个包了,可惜没有API,
给个设置透明度的代码吧
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import com.sun.awt.AWTUtilities;
class Test extends JComponent {
public void paintComponent(Graphics g) {
g.drawLine(20, 105, 690, 105);
g.drawLine(611, 40, 611, 550);
}
Test() {
JButton bt1 = new JButton();
bt1.setBounds(481, 45, 60, 25);
add(bt1);
}
public static void main(String[] args) {
Test t = new Test();
JFrame f = new JFrame("gg");
f.setSize(700, 600);
f.add(t);
AWTUtilities.setWindowOpacity(f, 0.8F); //就是这句0.8代表透明度 最大1
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
首先你的JDK必须是1.6或者更高版本。
java swing是提供了设置阴影和透明度的方法的,示例如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import com.sun.awt.AWTUtilities;
导入 AWTUtilities可能会提示:访问限制:由于对必需的库 C:\Program Files\Java\jre6\lib\rt.jar 具有一定限制,因此无法访问类型 AWTUtilities,请到eclipse进行设置:窗口》首选项》java》编译器》错误警告 选择 代码样式》访问外层不可访问成员》 把错误修改成功 警告
public class Ceshi extends JFrame
{
public Ceshi()
{
JLabel label=new JLabel("这是一个标签!");
label.setOpaque(false);
label.setHorizontalAlignment(JLabel.CENTER);
add(label);
setSize(600,400);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//Opacity最大值为1.0f,也就是什么也不透明,取值不能大于1.0f
AWTUtilities.setWindowOpacity(this,0.5f);
setVisible(true);
}
public static void main(String[] args)
{
new Ceshi();
}
}
package test;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test01 {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.getContentPane().setBackground(Color.GREEN);
JLabel label = new JLabel("123");
label.setOpaque(false);
frame.getContentPane().add(label, BorderLayout.CENTER);
label = new JLabel("12323");
label.setOpaque(false);
frame.getContentPane().add(label, BorderLayout.EAST);
frame.setVisible(true);
}
}
/*以下是API的setOpaque方法说明*/
setOpaque
public void setOpaque(boolean isOpaque)如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。
对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButton 和 JTree),此属性的默认值与外观有关。
参数:isOpaque - 如果此组件应该是不透明的,则为 true另请参见:isOpaque()
登录的窗口主界面JFrame,调用getContentPane(),获取到面板。
JPanel J=(JPanel)this.getContentPane();
创建一个带图标的标签。
JLabel jb=new JLabel(new ImageIcon("xx.jpg"));
添加该标签,并设置为窗口的大小。
J.add(jb);
jb.setBounds(0, 0, this.getWidth(), this.getHeight());
如果在JFrame中还有其他的覆盖于其上的JPanel,需要将其设为透明,
setOpaque(true);
注:代码为JFrame的构造函数中完成,其This指代窗口当前实例。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流