Hallo!
ich hab ein JWindow erzeugt, welches ich via KeyListener Bewegen kann erzeugt...
am anfang ist es noch eine transparente Kugel (mit screenshot gelöst)
jetzt will ichs aber, dass es weiterhin unsichtbar bleibt, wenn ichs beweg (hab schon probiert einfach den hintergrund wieder neu zu zeichnen, hat aber irgendwie nicht so recht funktioniert..
Hier der Code:
ich hab ein JWindow erzeugt, welches ich via KeyListener Bewegen kann erzeugt...
am anfang ist es noch eine transparente Kugel (mit screenshot gelöst)
jetzt will ichs aber, dass es weiterhin unsichtbar bleibt, wenn ichs beweg (hab schon probiert einfach den hintergrund wieder neu zu zeichnen, hat aber irgendwie nicht so recht funktioniert..
Hier der Code:
Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
public class Glaskugel extends JWindow
{
private Image hintergrund;
private Icon ic_hintergrund;
private JLabel l_hintergrund;
private Image i_kugel;
private Icon ic_kugel;
private JLabel l_kugel;
private int xPos, yPos;
private Container c;
public Glaskugel()
{
setSize(300, 300);
setLocationRelativeTo(null);
c=getContentPane();
c.setLayout(null);
hintergrund=null;
ic_hintergrund=screenshot();
l_hintergrund=new JLabel(ic_hintergrund);
l_hintergrund.setBounds(0,0,300,300);
Toolkit tk=Toolkit.getDefaultToolkit();
i_kugel=tk.getImage("Kugel.png");
MediaTracker mediaTracker = new MediaTracker(this);
mediaTracker.addImage(i_kugel, 0);
try
{
mediaTracker.waitForAll();
}
catch(InterruptedException e){}
ic_kugel=new ImageIcon(i_kugel);
l_kugel=new JLabel(ic_kugel);
l_kugel.setBounds(0,0,300,300);
l_kugel.setOpaque(false);
c.add(l_kugel);
c.add(l_hintergrund);
l_kugel.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point window = Glaskugel.this.getLocation();
Glaskugel.this.setLocation(window.x+e.getX()-xPos, window.y+e.getY()-yPos);
}
});
l_kugel.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
xPos = e.getX();
yPos = e.getY();
}
public void mouseReleased(MouseEvent e) {
}
});
}
public ImageIcon screenshot()
{
try {
hintergrund=new Robot().createScreenCapture(new Rectangle(getLocation(),new Dimension( getWidth(), getHeight()) ));
}catch(Exception e){}
MediaTracker m_mediaTracker = new MediaTracker(this);
m_mediaTracker.addImage (hintergrund,0);
try
{
m_mediaTracker.waitForAll();
}catch(InterruptedException e){}
return new ImageIcon(hintergrund);
}
public static void main(String[] args)
{
new Glaskugel().setVisible(true);
}
}