重写你图片所在Label的paint方法,用
public void paint(Graphics g)
{
super.paint(g);
ImageIcon temp=new ImageIcon(name);
if(name.equals(""));
else im=temp.getImage();
g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);
}
name就是你的图片的名字,这样画上去比较快
public void paint(Graphics g)
{
super.paint(g);
ImageIcon temp=new ImageIcon(name);
if(name.equals(""));
else im=temp.getImage();
g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);
}
name就是你的图片的名字,这样画上去比较快
evt.getX()和evt.getY()数值不是连续的,而是不断跳动的啊
所以你要获取Label当时的相对位置,然后相加就可以了,代码如下:
public void mouseDragged(MouseEvent evt) {
Object source = evt.getSource();
if (source == testLabel) {
testLabel.setLocation(testLabel.getX()+evt.getX(),testLabel.getY()+evt.getY());
}
}
谢谢了.
public void mousePressed(MouseEvent evt) {
Object source = evt.getSource();
if (source == testLabel) {
mouseX = evt.getX();//得到当前鼠标的位置
mouseY = evt.getY();//得到当前鼠标的位置
}
}public void mouseDragged(MouseEvent evt) {
Object source = evt.getSource();
if (source == testLabel) {
testLabel.setLocation(testLabel.getX()+(evt.getX()-mouseX),testLabel.getY()+(evt.getY()-mouseY));//evt.getX()-mouseX为了取到鼠标拖动时与原来的位置差
}
}
du51(apple) ,我也是刚刚开始学呀,这段代码我是根据一个示例改动的,所以那个界面我也不是很清楚,不过估计是JFrame.setDefaultLookAndFeelDecorated(true); 这句话吧:)
大家不要打我,还有个问题就是那个scrollPane上的滚动条在mouseDragged函数中如何设置才能使滚动条能随着图片的移动而改变他们的位置?