java jpanel 半透明_java – 透明JPanel
我想创建一个半透明的JPanel.我通过简单地使用颜色构造函数的RGBA值来完成它,但问题是当我使用事件处理不正确地唤醒时.我的要求是一个半透明的Jpanel,当鼠标进入它的边框,这个面板变得可见,如果鼠标退出边框不可见.我已经通过以下代码做到这一点,但问题是它不能正常工作的透明背景(RGBA),但它可以正常工作的RGB颜色.
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class MDCW extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MDCW frame = new MDCW();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MDCW() {
setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,1013,551);
contentPane = new JPanel();
contentPane.setBackground(new Color(0,139,139));
contentPane.setBorder(new EmptyBorder(5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
final JPanel panel = new JPanel();
panel.setBackground(new Color(0,50));
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
panel.setBorder(new LineBorder(new Color(255,255,255),5));
}
@Override
public void mouseExited(MouseEvent e) {
panel.setBorder(null);
}
});
panel.setBounds(360,155,215,215);
contentPane.add(panel);
final JPanel panel_1 = new JPanel();
panel_1.setBackground(new Color(0,0));
panel_1.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
panel_1.setBorder(new LineBorder(new Color(255,5));
}
@Override
public void mouseExited(MouseEvent e) {
panel_1.setBorder(null);
}
});
panel_1.setBounds(84,215);
contentPane.add(panel_1);
}
}
JPanel不支持半透明背景.需要两个步骤来处理这个问题:
>首先,要使任何正常运行的透明度,你必须在面板上设置不透明(false);否则你会有毛刺,因为假设一个不透明的面板完全覆盖了它的界限下面.
>但是,当opaque为false时,面板也不会绘制其背景(!),所以您必须在paintComponent中绘制背景.
这是一个下拉替换类,它将处理这两个步骤.
private class TransparentPanel extends JPanel {
{
setOpaque(false);
}
public void paintComponent(Graphics g) {
g.setColor(getBackground());
Rectangle r = g.getClipBounds();
g.fillRect(r.x,r.y,r.width,r.height);
super.paintComponent(g);
}
}
如果我将第一个面板创建更改为:
final JPanel panel = new TransparentPanel();
java jpanel 半透明_java – 透明JPanel相关推荐
- java jpanel隐藏_java – 绘制JPanel隐藏菜单
我有一个JPanel,在其上执行自定义绘画,可能需要15秒. 问题是当我在绘制JPanel的同时点击一个菜单时,绘画正在菜单上完成,并且选项不可见. (见图中扭曲的文字) 如果我在绘画完成后单击菜单, ...
- java jpanel 叠加_java – 如何在JPanel上叠加,调整大小和居中组件?
首选大小 JProgressBar由UI委托 BasicProgressBarUI指定.下面的示例说明了各种布局管理器的效果. FlowLayout只使用UIManager默认值ProgressBar ...
- java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
这是一个非常常用的东西 主要是重写JPanel中的paint(Graphics g)方法实现的. 0 写一个类继承JPanel public class WSModePlane extends JPa ...
- JAVA图形编程Swing之——JPanel绘图
JAVA图形编程Swing之--JPanel绘图 一直搞不清怎么在JPanel中绘2D图像,主要是不知怎样得到Graphics类的对像来画图,今天查了查资料,测试N种方法,终于搞明白.下面做一 ...
- JAVA SWING之JFrame和JPanel布局
初学JAVA的时候学习过SWING,每次写程序就直接复制Jframe和Jpanel设置,到现在也不清楚它们有什么关系,才回顾学习.Swing虽然是很老的技术了,但也有很多工具是Swing写的例如Jet ...
- java五子棋棋盘_java五子棋项目(一)
一.实现功能(人人对战模式) 1.点击开始下棋,黑棋先手,再下白棋 2.拖动界面,棋子和棋盘依旧存在(实现重绘) 2.每下一颗棋子判断输赢,获胜方弹出游戏提示 3.点击悔棋按钮,实现悔棋 4.点击认输 ...
- java label 边框_java中怎么给jlabel设置边框,多谢!
这是我找到的例子 import java.awt.Image; import java.awt.Rectangle; import java.awt.TextArea; import java.awt ...
- java swing背景_java swing 设置背景图片的方法一
下面是偶写着玩的下测试的代码:(不好之处,请多多指教,大家共同进步 ) import java.awt.*; import javax.swing.*; public class ImageDemo ...
- JAVA下GUI设置透明背景图片窗口(不覆盖文本内容)
之前学过Java的GUI,写过简单的例子.昨天朋友问怎么能为窗口设置背景图片,且让文字在背景上边显示,挺简单的要求折腾了好一会儿才实现-mark一下. 一.最终效果图: 二.源码 public cla ...
最新文章
- UWP: ListView 中与滚动有关的两个需求的实现
- python中循环结构关键字_Python的循环结构,也简单!
- MaxCompute Mars 完全指南
- 小小智慧树机器人_国网营业厅“AI新势力”,科沃斯商用机器人解锁智慧服务新模式!...
- 浙江移动智能语音服务器,接口说明
- 读取hdr图像_HDR和蓝光哪个更清晰?画质更好?
- apache ii评分怎么评_APACHEⅡ评分系统
- 【Java就业培训教程】——String类的学习
- “快易需求系统”数据库设计心得
- windows当服务器不稳定,Win10上网不稳定经常掉线该如何解决?方法分享
- WinDbg 符号下载错误解决方案
- 索尼xz1c 日版融卡扩容经验分享(无需root,索尼XZP机型也适用)
- IT通过什么途径去美国工作?
- 计算机网络——各层次网络互联设备
- maven本地仓库设置
- Unity3D魔方游戏如何完成魔方的旋转
- 信息时代的生活到底给我们带来了什么?
- 秀下有关JavaScript的专业技能,走过路过不要错过!
- 计算机毕业设计java课程设计程序设计SSM框架网上书城全套含微信支付
- linux将时钟放在桌面上的,小技巧:Linux个性化面版时钟显示
热门文章
- 海思Hi3516C V500R001C02SPC002-sdk完整开发包
- linux互斥锁和PV原语
- 修改Oracle默认端口1521
- matlab高级教程教材,MATLAB语言高级编程 PDF_IT教程网
- java实时监听mysql_Java 中能实现监听数据库吗?
- 操作MYSQL日期格式年 或 月 或 日
- 使用hutool-all进行邮件发送报错Could not connect to SMTP host: smtp.qq.com, port: 465
- Godot Engine:街霸隆冲击波(预告片儿)
- LLE原理及推导过程
- easyPOI导出文件到指定目录