如何在javaswing中把其中一个面板上带图标的按钮中拖曳到另一个面板上,

释放鼠标时出现该按钮上放大的图片,是否会用到mousePressed(MouseEvent e)和mouseReleased(MouseEvent e)两个函数,若用到这两个函数,具体函数里边该怎么写,麻烦知道的大神给出代码并有注释,谢谢~

第1个回答  2013-04-10
1、按钮添加相应的鼠标下压、鼠标释放事件
2、事件中对需要操作的键进行监听。左键、右键或者是中键
3、然后具体的该是放大或者缩小,这个就看要求了追问

mousePressed(MouseEvent e)和mouseReleased(MouseEvent e)两个函数可否把详细的代码给写一下,谢谢

追答

下压,释放方法里面判断一下当前事件响应的键位值,键位值等于你需要监听的键的时候,取到你要操作的按钮,然后做后续处理。
这些都是里面的基本应用,你看看这几个类的java doc就能知道。思路清楚了,写代码那只是体力活而已。

追问

高手就是不一样,佩服呀,如果是这种情况,一个Frame中有左右各两个面板,按钮在左边的面板,如何把它拖曳到右边的面板,释放鼠标后生成该按钮上的图片,我在拖曳的时候好像总是被右边的面板覆盖掉了~

追答

这个倒没做过类似的东西。感觉遮挡是不是没有将按钮add到这个panel上?
初步分析可以这么试试:
1)mousepressed的时候,记录下按钮的Loaction,右边面板的location
2)按钮的drag事件中,通过在按钮的loaction的x,y坐标上增加移动的x,y坐标得到当前的按钮location。
3)mouserelease时,当按钮的location在右边面板之内时(两者的location判断,为了保证效果,还可以考虑右边面板的大小,和按钮本身的大小,来控制按钮不会移出或者部分移出右边面板),将按钮在左侧面板中移除掉,然后在右边面板的相应位置(按钮的Location)添加这个按钮
4)按钮加上了,图片什么的应该就很好处理了。

要是还不行,你看看你用的api中,控件有没有类似于置顶、置底之类的方法。没有用最新的jdk写过swing,不太确定。一般将控件add到容器上,并且设置visiable属性为true的话是没问题的。

只考虑了主线逻辑,其它的边界,分支没有过多考虑。如果需要来回移动,在Preesed的时候可以先判断一下这个按钮属于谁,设置一个标记位,这样第三步的移除、添加就知道该在哪个上移除,然后添加到哪个面板了。

本回答被提问者采纳

java swing 中怎么实现鼠标拖拽控件到另一个控件的功能?
拖曳(Drag and Drop)在Swing中有支持,直接调用setDragEnabled就可以实现“可拖动”效果。常用的控件中都有:setDragEnabled、setDropMode、setDropTarget。

Java swing怎么设计单击一个面板里的标签来移除另一个面板里的所以组件...
import java.awt.event.MouseEvent;import javax.swing.*;public class Test { public static void main(String[] args) { final JFrame jf = new JFrame();JPanel jp1 = new JPanel();final JPanel jp2 = new JPanel();JLabel jl = new JLabel("移除jp2中的所有组件");jp1.add(jl)...

用java的swing做界面,想通过在同一个窗口进行面板的切换来达到跳转界面...
方法一: 可以使用JTabbedPane 来实现,代码如下 JTabbedPane jtp = new JTabbedPane();JPanel jp1 = new JPanel();JPanel jp2 = new JPanel();jtp.add("面板1", jp1);jtp.add("面板2", jp2);方法二: (推荐) 跳转界面 , 还是需要从1个窗口到另外1个窗口, 这样正规点, 数据可以从第一...

java按一下按钮就能跳到另一个界面怎么实现
java实现的简单登录页面,从一个按钮点击后跳转的页面的jframe写法:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jb{ public static void main(String args[]){ JFrame f=new JFrame("点我跳转");Container contentPane=f.getContentPane();contentPane.setLayout(...

java Swing 一个窗口里做两个面板切换 怎样实现
一、你可以用Java自带的组件,叫tablepanel还是什么的,一下记不清了,就可以切换选项卡;二、自己写两个按钮或什么,添加监听,点击按钮的时候,将第需要切换的面板里面的组件移除,再添加你需要显示的那个组件,然后在refresh刷新一次整个窗口

java中如何从一个窗口通过点击按钮进入另外一个窗口? (两个窗口不在一...
第二个窗体(可以从第一个窗体进入第二个窗体,也可从第二个窗体回到第一个窗体)import javax.swing.SwingUtilities;import javax.swing.JPanel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import ...

java中如何从一个窗口通过点击按钮进入另外一个窗口?
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class Frame1 extends JFrame { private static final long serialVersionUID = 1L;public static void main(String args[]) { try { Frame1 frame = new Frame...

怎么用eclipse做一个界面点击按钮就可以跳转到另一个界面的代码
1、打开eclipse软件。2、建立一个java工程。菜单栏中依次点击“file”-“new”-“java project”;然后,在工程列表中选中工程单击鼠标右键,选中“new”-“class”,在配置自己的类。3、添加属性,载入属性代码。private JPanel jp=new JPanel();private JButton[] jbArray=new JButton[]{new J...

java图形界面程序,当单击按钮时把一个文本框当前内容复制到另一个文本...
import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class Main extends JFrame { private JTextArea text1 = null;private JTextArea text2 = null;private JButton...

java中怎么由一个界面跳到另一个界面??
import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;class Demo2 { static int k;JFrame frame=new JFrame();public Demo2(){ frame.setLayout(null);frame.setLayout(new GridLayout(k,1,3,3));for(int i=0;i<k;i++){ JButton but=new JButton("按钮"...

相似回答