当前位置:  技术问答>java相关

在applet中如何实现一副图片的拖动?

    来源: 互联网  发布时间:2015-01-17

    本文导语:  或者java中有没有类似C++的ICON,可以直接移动的? 我需要为一图片写一个移动函数! | import java.awt.*; import java.awt.image.*; import java.applet.*; import java.awt.event.*; public class DragImage extends Applet { ...

或者java中有没有类似C++的ICON,可以直接移动的?
我需要为一图片写一个移动函数!

|
import java.awt.*;
import java.awt.image.*;
import java.applet.*;
import java.awt.event.*;
public class DragImage extends Applet
{
public void init()
{
Image img = getImage(getCodeBase(),"test3.jpg");
MediaTracker tracker;
tracker = new MediaTracker(this);
tracker.addImage(img, 0);
ImagePanel ip=new ImagePanel();
ip.img = img;
setLayout(new BorderLayout());
add(ip,BorderLayout.CENTER);
}
}

class ImagePanel extends Panel implements MouseMotionListener,MouseListener
{
Image img;
Point p;
Point lastpos;
boolean isDrag=false;
public ImagePanel()
{
addMouseListener(this);
addMouseMotionListener(this);
lastpos=new Point();
p=new Point();
}
public void paint(Graphics g)
{
g.fillRect(0,0,getWidth(),getHeight());
if(img!=null)
g.drawImage(img,p.x,p.y,this);
g.setColor(Color.red);
g.drawString("Mouse press inside the image to drag",0,120);
}
public void update(Graphics g)
{
paint(g);
}

public void mouseClicked(MouseEvent e)
{ }
public void mouseEntered(MouseEvent e)
{}
public void mouseExited(MouseEvent e)
{}
public void mousePressed(MouseEvent e)
{
lastpos = e.getPoint();
isDrag=isMouseInsideImage(lastpos);
repaint();
}
public void mouseReleased(MouseEvent e)
{}
public void mouseMoved(MouseEvent e)
{ }
public void mouseDragged(MouseEvent e)
{

Point newpos =e.getPoint();
if(isDrag)
{
p.x = p.x+newpos.x-lastpos.x;
p.y = p.y+newpos.y-lastpos.y;
lastpos = newpos;
repaint();
}
}
protected boolean isMouseInsideImage(Point pos)
{
int width =img.getWidth(null);
int height =img.getHeight(null);
Rectangle rect=new Rectangle(p.x,p.y,width,height);
return rect.contains(pos);
}

}

|
这里有一个使用拖动层的例子。
控制两个层上的两个图片的拖动。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JApplet {
public void init() {
setContentPane(new CustomContentPane());
}
}
class CustomContentPane extends JLayeredPane {
private ImageIcon rain = new ImageIcon("rain.gif");
private ImageIcon punch = new ImageIcon("punch.gif");
private ImageIcon skelly = new ImageIcon("skelly.gif");
private int rainw = rain.getIconWidth();
private int rainh = rain.getIconHeight();

private JLabel[] labels = { 
new JLabel("I stay put", punch, SwingConstants.RIGHT),
new JLabel("Drag me around!", 
skelly, SwingConstants.RIGHT),
};

public CustomContentPane() {
Dragger listener = new Dragger();
JCheckBox onDragLayer = new JCheckBox("Drag Layer");

// JLayeredPane has a null layout by default
setLayout(new FlowLayout());

onDragLayer.setOpaque(false);

add(onDragLayer);
add(labels[0]);
add(labels[1]);

labels[1].addMouseMotionListener(listener);
labels[1].addMouseListener(listener);

setLabelText();

onDragLayer.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
setLayer(labels[1], 
JLayeredPane.DRAG_LAYER.intValue());
}
else {
setLayer(labels[1], 
JLayeredPane.DEFAULT_LAYER.intValue());

}
setLabelText();
validate();
}
});
}
public void paintComponent(Graphics g) {
Dimension size = getSize();

for(int row=0; row 

    
 
 

您可能感兴趣的文章:

  • 请问application (or applet)如何实现对applet 小程序的调用??
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • applet如何实现对数据库(access)的操作,征求设计方案。
  • 使用Applet能不能实现基于浏览器的打印呢???
  • 在网页中能否用applet实现两个客户端的直接通信?急!!!
  • 求解!Java如何能在多个applet之间实现类似asp的session类!
  • 要做一个在applet,实现可以托拽的图形(比如长方形和线段等)?那位高手有资料?或者有没有java的第三方类库实现此功能?
  • applet和servlet的通信如何实现?
  • 请问在applet中如何实现滚动条?
  • 在APPLET中如何实现对磁盘文件的读写,如有办法请给一个相关代码!请求帮助!一定给分!
  • applet程序不能实现与application程序之间的通信,怎么办呢?
  • applet访问本地硬盘,怎末实现
  • 是不是applet不能实现事件监听器接口啊?
  • applet 能否实现控件的功能
  • 那位能提供java applet实现的目录树(内容来自数据库)的源码?
  • 请教:如何实现点击一个image后,该image在Applet中移动位置?有示例代码吗?谢谢!!!
  • 在网页中的Applet中怎样实现打印?
  • Applet能实现如下功能吗????
  • 请教:如何实现点击一个image后,该image在Applet中移动位置?有示例代码吗?谢谢!!
  • 在java applet中如何关闭IE窗口呢?比如说在上面放个按钮,点击按钮就可以把IE窗口关闭掉。如何实现呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Applet中使用图片时,路径该怎么写?
  • Applet为何显示不出图片,急!!!
  • applet中读取服务器的资源文件如图片、音乐文件等。怎么弄?请大家帮忙!
  • 通过网页上传图片到服务器,用什么方法比较好呢?(applet?)
  • 哪位老兄做过在指定坐标位置(x,y)画点或者用图片代替点的applet
  • 请问java applet里,怎么能只显示图像的一部分,比如只显示图片的中间一块?
  • 我的applet在本地机器上运行的很好,为什么传到网上后用到声音图片的都不能运行了??(急!)
  • applet可不可以在loading的时候显示点图片或动画之类的东西,就象flash一样?
  • 请问各位大虾,在Applet中如何缩放图片?
  • applet可不可以在loading的时候显示点图片或动画之类的东西,就象flash一样? iis7站长之家
  • Applet中装如图片,那种方式更好???
  • 发布Applet不能添加图片,。。。。help
  • 如何通过Applet来显示一个静态的图片,但是显示形式是动态的
  • java命名空间java.applet类applet的类成员方法: applet定义及介绍
  • 如何让Applet里的控件随着Applet大小改变而一直占满整个Applet呢?
  • java命名空间java.applet类applet.accessibleapplet的类成员方法: applet.accessibleapplet定义及介绍
  • 对applet坐数字签名后,如果重新用jar对applet打包,需要重新做applet数字签名吗?
  • java命名空间java.applet类applet的类成员方法: getappletcontext定义及介绍
  • 为什么我的applet编译完,之后除了applet1.class之外,还有一个applet$1.class?
  • java命名空间java.applet类applet的类成员方法: getappletinfo定义及介绍
  • 急,我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet1中点击一个按钮来打开这个Applet2.谢谢
  • java命名空间java.applet类applet的类成员方法: isactive定义及介绍
  • 如何让IE认识applet所带的数字签名,而不是让证书仓库认识这个带数字签名的applet,就是说不装jdk也可以在IE里面使用带有签名的applet,详情请进
  • java命名空间java.applet类applet的类成员方法: stop定义及介绍
  • 请问能在浏览器调入APPLET后,在APPLET内部改变其自身的大小嘛?
  • java.applet类applet的类成员方法: getcodebase定义及介绍
  • applet 如何启动新的 applet
  • java命名空间java.applet类applet的类成员方法: init定义及介绍
  • 如何把applet窗口里的Java Applet Window去掉?
  • java命名空间java.applet类applet的类成员方法: destroy定义及介绍
  • Applet对本地资源是不能访问的,那如果我要用Applet做打印设计,那如何是好呢??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3