
正文
java使窗口透明化代码 java中jbutton透明
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java中怎样让panel完全透明,只显示上面的图片?
import javax.swing.* ;
public class baiduzhidao1 {
public static void main(String args[]){
ImageIcon img = new ImageIcon("1.jpg"); /*负责显示图像的JLable对象j1*/
JLabel jl = new JLabel(img);
JPanel j = new JPanel() ; /*在JFrame上add上面板j*/
JFrame jf = new JFrame() ;
jf.setContentPane(j) ;
j.add(jl) ; /*在面板j上add上JLable对象j1*/
JPanel jjj = new JPanel() ; /*创建一个透明的面板放在JLable对象j1上负责放控件,此例中放置了一个按钮*/
jl.add(jjj) ;
jjj.setSize(200, 100) ; /*这里注意要设置大小*/
jjj.setOpaque(false) ; /*将负责放置控件的面板设置成透明,详细请查API*/
jjj.add(new JButton("确定")) ; /*添加按钮*/
jf.setVisible(true) ;
jf.setSize(500, 300) ;
}
}
容器从顶层开始顺序如下:
jf(JFrame对象实例) -- j (JPanel对象实例,无须设置透明) -- j1(JLable对象实例,负责显示图片)
-- jjj(JPanel对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
相关问答
Q1: 在java中怎么设置滚动面板为透明
设置颜色:
把pan - pan6的Background设为Null,这样他们就变为透明的了,以后只需要改变inquestFrame的颜色就可以改变全部的颜色,代码如下:
// 设置整体布局
JPanel pan = new JPanel();
pan.setLayout(new GridLayout(6, 1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan4);
pan.add(pan5);
pan.add(pan6);
pan.setBackground(null);
pan1.setBackground(null);
pan2.setBackground(null);
pan3.setBackground(null);
pan4.setBackground(null);
pan5.setBackground(null);
pan6.setBackground(null);
r1.setBackground(null);
r2.setBackground(null);
inquestFrame.setBackground(Color.LIGHT_GRAY);
inquestFrame.setContentPane(pan);
inquestFrame.setSize(300, 250);
inquestFrame.setVisible(true);
设置图片需要改的比较多,自己比较那不一样吧:
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Inquest {
JFrame inquestFrame;
JLabel lab1, lab2, lab3, lab4, lab5, lab6;
JTextField text1, text2, text4, text5, text6;
JRadioButton r1, r2;
JButton inqButton;
public Inquest() {
inquestFrame = new JFrame("教育经历管理系统-查询窗口");
MyPanel pan1 = new MyPanel();
lab1 = new JLabel("请输入编码:");
text1 = new JTextField(10);
inqButton = new JButton(" 查询");
inqButton.addActionListener(new ButtonHandler());
pan1.add(lab1);
pan1.add(text1);
pan1.add(inqButton);
MyPanel pan2 = new MyPanel();
lab2 = new JLabel("姓名:");
text2 = new JTextField(10);
pan2.add(lab2);
pan2.add(text2);
MyPanel pan3 = new MyPanel();
lab3 = new JLabel("性别:");
r1 = new JRadioButton("男");
r2 = new JRadioButton("女");
// 把两个单选按钮放到一个群组中,保持二选一
ButtonGroup group = new ButtonGroup();
group.add(r1);
group.add(r2);
pan3.add(lab3);
pan3.add(r1);
pan3.add(r2);
MyPanel pan4 = new MyPanel();
lab4 = new JLabel("单位:");
text4 = new JTextField(10);
pan4.add(lab4);
pan4.add(text4);
MyPanel pan5 = new MyPanel();
lab5 = new JLabel("职位:");
text5 = new JTextField(10);
pan5.add(lab5);
pan5.add(text5);
MyPanel pan6 = new MyPanel();
lab6 = new JLabel("年龄:");
text6 = new JTextField(10);
pan6.add(lab6);
pan6.add(text6);
// 设置整体布局
MyPanel pan = new MyPanel();
pan.setLayout(new GridLayout(6, 1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan4);
pan.add(pan5);
pan.add(pan6);
pan.setBackground(null);
pan1.setBackground(null);
pan2.setBackground(null);
pan3.setBackground(null);
pan4.setBackground(null);
pan5.setBackground(null);
pan6.setBackground(null);
r1.setBackground(null);
r2.setBackground(null);
MyPanel pan0 = new MyPanel();
pan0.setPreferredSize(pan.getPreferredSize());
pan0.setLayout(null);
pan.setBounds(0, 0, pan.getPreferredSize().width, pan.getPreferredSize().height);
URL url = Inquest.class.getResource("Winter.jpg");
ImageIcon img = new ImageIcon(url);
JLabel lab = new JLabel(img);
lab.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
pan0.add(pan);
pan0.add(lab);
inquestFrame.setContentPane(pan0);
inquestFrame.pack();
inquestFrame.setVisible(true);
}
public static class MyPanel extends JPanel {
public void paint(Graphics g) {
paintChildren(g);
}
}
public void setBack() {
((JPanel) inquestFrame.getContentPane()).setOpaque(false);
// Winter.jpg这个图片的位置要跟当前这个类是同一个包下
URL url = Inquest.class.getResource("Winter.jpg");
ImageIcon img = new ImageIcon(url);
JLabel background = new JLabel(img);
inquestFrame.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
}
class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
// 生成SQL语句
String s = "select * from information where id=" + "'" + text1.getText() + "'";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:test";
// DB db = new DB(driver, url, "sa", "");
// ResultSet rs = db.query(s);
// try {
// while (rs.next()) {
// text2.setText(rs.getString(2));
// String sex = rs.getString(3);
// if (sex.trim().equals("男"))
// r1.setSelected(true);
// else
// r2.setSelected(true);
//
// text4.setText(rs.getString(4));
// text5.setText(rs.getString(5));
// text6.setText(rs.getString(6));
// }
// } catch (Exception e2) {
// e2.printStackTrace();
// }
}
}
public static void main(String args[]) {
new Inquest();
}
}
Q2: Java 如何实现透明窗口?
我的电脑-属性高级环境变量系统变量中添加以下几个变量.path(变量): (值) %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%java_home%\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN(要是这个变量名你的有的话,你在它里面适当位置添加%java_home%参照我的配置值进行设置.classpath : %java_home%\lib\tools.jar;%java_home%\jre\lib\rt.jar;这个是添加的java_home: C:\Program Files\Java\jdk1.5.0这个是JAVA的安装路径,你的安装在那里就适当的修改父路径.配置好了环境变量就能运行JAVA了。至于JAVA详细的怎么用,你可以在网上搜下.以上不知道对你有没有帮助.
Q3: java实现窗口全屏透明化,并在屏幕中显示汉字
// 将一个Frame最大化
if (f.isUndecorated()) {// 无边框窗口
f.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds());
}else{
f.setExtendedState(f.getExtendedState() | JFrame.MAXIMIZED_BOTH);
}
Q4: java怎么给窗体边框四周添加阴影和半透明
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();
}
}
Q5: 如何使java图形程序的窗口背景变成透明的
看下这个应该对您有帮助:
Swing最新特性:增加透明窗体及不规则窗体功能
透明窗体:
public class TranslucentWindow extends JFrame {
public TranslucentWindow() {
super("透明窗体");
this.setLayout(new FlowLayout());
this.add(new JButton("按钮"));
this.add(new JCheckBox("复选按钮"));
this.add(new JRadioButton("单选按钮"));
this.add(new JProgressBar(20, 100));
this.setSize(new Dimension(400, 300));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Window w = new TranslucentWindow();
w.setVisible(true);
com.sun.awt.AWTUtilities.setWindowOpacity(w, 0.6f);
}
});
}
}
java使窗口透明化代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中jbutton透明、java使窗口透明化代码的信息别忘了在本站进行查找喔。






