急!关于鼠标拖放问题,分不够再加

dgsrest 2003-12-02 01:08:48
最好给个Demo的详细代码
...全文
58 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgsrest 2003-12-03
  • 打赏
  • 举报
回复
好啦,谢谢了
IEQQ 2003-12-03
  • 打赏
  • 举报
回复
关注ing!!!!!!!
207 2003-12-02
  • 打赏
  • 举报
回复
不能连续回复大于3次
第三个文件:
package jdraganddropdemo;

import javax.swing.UIManager;
import java.awt.*;

public class JDragAndDropDemo {
private boolean packFrame = false;

//Construct the application
public JDragAndDropDemo() {
MainFrame frame = new MainFrame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
/* try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
*/ new JDragAndDropDemo();
}
}
dgsrest 2003-12-02
  • 打赏
  • 举报
回复
好像不行啊????
207 2003-12-02
  • 打赏
  • 举报
回复
文件2:
package jdraganddropdemo;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;

public class MainFrame extends JFrame implements DropTargetListener {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
private JTextField jTextField1 = new JTextField();

DragJLabel label = new DragJLabel("Hello World !",SwingConstants.CENTER);


//Construct the frame
public MainFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(410, 114));
this.setTitle("JDragAndDropDemo");
jTextField1.setFont(new java.awt.Font("Dialog", 0, 14));
contentPane.add(jTextField1, BorderLayout.SOUTH);
contentPane.add(this.label,BorderLayout.NORTH);

new DropTarget(this.jTextField1,DnDConstants.ACTION_COPY_OR_MOVE,this);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public void dragEnter(DropTargetDragEvent dtde) {
/**@todo Implement this java.awt.dnd.DropTargetListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragEnter() not yet implemented.");
}
public void dragOver(DropTargetDragEvent dtde) {
/**@todo Implement this java.awt.dnd.DropTargetListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragOver() not yet implemented.");
}
public void dropActionChanged(DropTargetDragEvent dtde) {
/**@todo Implement this java.awt.dnd.DropTargetListener method*/
//throw new java.lang.UnsupportedOperationException("Method dropActionChanged() not yet implemented.");
}
public void dragExit(DropTargetEvent dte) {
/**@todo Implement this java.awt.dnd.DropTargetListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragExit() not yet implemented.");
}
public void drop(DropTargetDropEvent dtde) {
/**@todo Implement this java.awt.dnd.DropTargetListener method*/
//throw new java.lang.UnsupportedOperationException("Method drop() not yet implemented.");
try{
Transferable tr = dtde.getTransferable();
if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor)){
dtde.acceptDrop(dtde.getDropAction());
String s = (String) tr.getTransferData(DataFlavor.stringFlavor);
this.jTextField1.setText(this.jTextField1.getText()+s);
dtde.dropComplete(true);
}else{
dtde.rejectDrop();

}
}catch(Exception err){
err.printStackTrace();
}
}
}
207 2003-12-02
  • 打赏
  • 举报
回复
文件1:
package jdraganddropdemo;

import javax.swing.JLabel;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener;
import java.awt.dnd.*;
import java.awt.datatransfer.*;

class DragJLabel extends JLabel implements DragGestureListener, DragSourceListener {

DragSource ds = DragSource.getDefaultDragSource();


public DragJLabel(String title,int alignment){
super(title,alignment);

int action = DnDConstants.ACTION_COPY_OR_MOVE;
ds.createDefaultDragGestureRecognizer(this,action,this);



}
public void dragGestureRecognized(DragGestureEvent dge) {
/**@todo Implement this java.awt.dnd.DragGestureListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragGestureRecognized() not yet implemented.");
try{
Transferable tr = new StringSelection(this.getText());
dge.startDrag(DragSource.DefaultCopyNoDrop,tr,this);
}catch(Exception err){
err.printStackTrace();
}
}
public void dragEnter(DragSourceDragEvent dsde) {
/**@todo Implement this java.awt.dnd.DragSourceListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragEnter() not yet implemented.");
DragSourceContext dsc = dsde.getDragSourceContext();
int action = dsde.getDropAction();
if ((action&DnDConstants.ACTION_COPY)!=0)
dsc.setCursor(DragSource.DefaultCopyDrop);
else
dsc.setCursor(DragSource.DefaultCopyNoDrop);
}
public void dragOver(DragSourceDragEvent dsde) {
/**@todo Implement this java.awt.dnd.DragSourceListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragOver() not yet implemented.");
}
public void dropActionChanged(DragSourceDragEvent dsde) {
/**@todo Implement this java.awt.dnd.DragSourceListener method*/
//throw new java.lang.UnsupportedOperationException("Method dropActionChanged() not yet implemented.");
}
public void dragExit(DragSourceEvent dse) {
/**@todo Implement this java.awt.dnd.DragSourceListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragExit() not yet implemented.");
}
public void dragDropEnd(DragSourceDropEvent dsde) {
/**@todo Implement this java.awt.dnd.DragSourceListener method*/
//throw new java.lang.UnsupportedOperationException("Method dragDropEnd() not yet implemented.");
if (!dsde.getDropSuccess())
return;
// int action = dsde.getDropAction();
//if ((action&DnDConstants.ACTION_MOVE)!=0)
// this.setText("");
}
}
207 2003-12-02
  • 打赏
  • 举报
回复
java.awt.dnd和java.awt.datatransfer包是支持鼠标的拖放交换程序的数据的功能的
软件介绍: 真实的计算器界面,真正的绿色软件,不需安装,一个文件集全部功能于一身,不占用注 册表资源。 中文语音提示,键盘与鼠标操作,操作方式与现实生活中普遍使用的计算器完全相同,所 以非常容易上手,尤其对经常使用小键盘数字输入的用户来说更加方便。省去了以前一边看电 脑屏幕一边看计算器的尴尬。显示屏数字可随时转换为下列形式进行计算:十六进制、十进制 、八进制、二进制、人民币中文大写形式、人民币数字形式(例如:1435.75、人民币壹仟肆 佰叁拾伍圆柒角伍、¥1435.75)。以上各种转换与计算结果可选择是否自动存入WINDOWS剪 贴板,并自动输入在其它程序窗口的当前光标位置,省去了按"Ctrl+V"的不便,方便用户使用 。如果觉得计算器覆盖了屏幕显示的内容,可用鼠标单击液晶屏幕转为小窗口方式,小窗口可 任意拖放,并可自动吸附在屏幕边缘,再次单击鼠标可恢复原状,非常方便。 该计算器可进行多种科学与逻辑运算,各种单位换算,增加了各种常用常数表,加入了角度与 弧度计算,功能非常强大,是工程建筑、科学计算、理财等各方面应用的得力助手!对程序设 计和游戏修改也有不错的作用! ***增加了十几种三角函数运算(包括各种双曲正弦、余弦、正割、余割等等以及相关反函数 ),加入了角度与弧度计算,加入了位移指令,增加了各种常用常数表,使用户在计算一些常 用公式时,不必再去翻书查找。加入了各种单位换算,单位换算与屏幕计算结果实时换算,并 可实时改变换算单位。显示数据可自由选择是否加千位隔符,小数精度也可自由确定显示位 数。并修改了数据转换为"人民币中文大写形式、人民币数字形式(例如:1435.75、人民币壹 仟肆佰叁拾伍圆柒角伍、¥1435.75)的一些BUG,大大方便了财务、票据等方面的工作,输 入的任何数据和计算结果可自动输入在其它程序窗口当前光标位置,就像和其它程序融为一体 一样。如果用户经常在应用软件中做计算输入工作(例如各种文字处理、制表、工程计算、股 票等等一切需要输入计算数据和结果的地方。),那么这个功能将使工作变得非常方便!(如 果不需要这项功能,鼠标右键单击液晶屏幕,在弹出的菜单中取消“数据自动输入其它窗口” 一项即可!) 增加了表达式计算的功能,从此可以进行复杂的公式计算,如输入以下公式“ 2+(18-10)/7^2+sin(1)+sqrt(sqrt(5),3)*2”,按下计算按钮或回车会自动得出最终结果。另 外增加了一个“单步求解”的选项,可以一步一步显示出公式的计算过程。支持各种三角函数 ,运算的结果可选择弧度或角度值,这取决于计算器的角度|弧度按钮选择。打开表达式计算 的功能步骤是:鼠标右键单击液晶屏幕,在弹出的菜单中选择“* 表达式(公式)计算 *”一 项,即可打开该功能。(注:表达式功能不能在小窗口状态下使用),另外,v1.8版还改进了 许多以前版本中不方便或有BUG的地方,使用更加方便! 提示: 1. 如果“数据自动输入其它窗口”功能失效,可能与内存中驻留的程序有关,将驻留程序关 闭就可以了!(在部程序中可能不支持该功能) 2. 如果屏幕显示的结果太长显示不完,可将鼠标指针在屏幕上停留一会儿即可显示全部结果 。 3. 当鼠标指针在某个按钮停留一会儿,就会显示出该按钮的功能及说明! 4.如小键盘不能使用,可能是您没打开小键盘,方法是按键盘上“NumLock键. 注意:鼠标单击液晶屏幕转为小窗口方式,小窗口可任意拖放,在此方式下只能用键盘输入, 再次单击鼠标可恢复原状,鼠标双击液晶屏幕为结束程序。 附V1.8键盘操作说明: "1,2,3,4,5,6,7,8,9,0"为相应数字按钮。 "+,-,. ,*,/"为相应运算按钮。 Ctrl+"+、-、*、/"为存储加、减、乘、除。 Ctrl+"C"为存储清除。 Ctrl+"R或回车"为存储显示。 Ctrl+"S"为存储。 "[ ,]"为左、右位移操作。 "←"为退格键。 "F1"为软件帮助! "Esc,PageDown"为归零。 "End"为清除。 "Enter"为"="号按钮。

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧