本人是一个学生,学了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添加图片,但是图片还是矩形的,能不能把图片的边缘设置为透明的只显示图片,,,或者给个思路也行,
谢谢了, 在线等,,,
这是我的代码:
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添加图片,但是图片还是矩形的,能不能把图片的边缘设置为透明的只显示图片,,,或者给个思路也行,
谢谢了, 在线等,,,
test是什么?