java面板透明导入什么包,java中怎样让panel完全透明,只显示上面的图片
本篇文章给大家谈谈java面板透明导入什么包,以及java中怎样让panel完全透明,只显示上面的图片对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
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对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
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();
}
}
java swing 的jPanel背景颜色能否设置为透明,代码怎么写
设置颜色:
把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();
}
}
好了,文章到这里就结束啦,如果本次分享的java面板透明导入什么包和java中怎样让panel完全透明,只显示上面的图片问题对您有所帮助,还望关注下本站哦!