第一次问问题,关于透明的。
小_Y 2009-01-03 01:49:47 本人是一个学生,学了1个多月的JAVA 本想在放假的时候给老师一个礼物,但是。。。。
这是我的代码:
package test;
import java.awt.*;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import javax.swing.*;
public class test1 extends JFrame implements ComponentListener, WindowFocusListener{
private JFrame frame;
private Image backgroud = new ImageIcon().getImage();
public test1(){
super("Hello World");
JPanel panel = new JPanel(){
public void paintComponent(Graphics g) {
Point pos = this.getLocationOnScreen();
Point offset = new Point(-pos.x,-pos.y);
g.drawImage(backgroud,offset.x,offset.y,null);
}
}
addComponentListener(this);
add("Center",test);
pack();
setDefaultCloseOperation(3);
setSize(200,150);
setVisible(true);
try{
Robot rbt = new Robot();
Toolkit tlk = Toolkit.getDefaultToolkit();
Dimension dim = tlk.getScreenSize();
backgroud = rbt.createScreenCapture(new Rectangle(0,0,(int)dim.getHeight(),(int)dim.getWidth()));
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
new test1();
}
public void componentHidden(ComponentEvent arg0) {
repaint();
}
public void componentMoved(ComponentEvent arg0) {
repaint();
}
public void componentResized(ComponentEvent arg0) {
repaint();
}
public void componentShown(ComponentEvent arg0) {
repaint();
}
public void windowGainedFocus(WindowEvent arg0) {
repaint();
}
public void windowLostFocus(WindowEvent arg0) {
repaint();
}
}
思路很简单,把panel 设置为透明的,然后在上面加个JLabel添加图片,但是图片还是矩形的,能不能把图片的边缘设置为透明的只显示图片,,,或者给个思路也行,
谢谢了, 在线等,,,