急!如何在两个按钮之间加一条连线,当其中一个按钮拖动时,连线也跟着动

关于这样的列子我也看了很多,不过就是没有源代码,我的代码如下:

import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.tree.*;
 
class jiemian extends JFrame implements MouseMotionListener,MouseListener{ 
 DefaultMutableTreeNode root=new DefaultMutableTreeNode("シニヒ羹愠ミア・");
    DefaultMutableTreeNode node=null;
 JTree tree=new JTree(root);
 JSplitPane splitPane;
 JScrollPane jp1=new JScrollPane(tree);//--------------------------tree----------------
 JScrollPane jp2=new JScrollPane();//--------------------------picture----------------
 JButton btn;
 JButton jb;
 int x,y;

 jiemian(){
  setTitle("hello");

  jp2.setLayout(null);
//
  btn=new JButton(new ImageIcon("cloud.png"));
  btn.setContentAreaFilled(false);//ーエナ・イサマヤマヨ  
  btn.setBorder(null);//ボシ蔆カ
  btn.setToolTipText("ホサヨテ: ");//ハ・」チツシ
  btn.setHorizontalTextPosition(AbstractButton.CENTER);
    btn.addMouseListener(this);
    btn.addMouseMotionListener(this); 

  btn.setBounds(150,150,85,42);
     jp2.add(btn);
///
  btn=new JButton(new ImageIcon("node.png"));
  btn.setContentAreaFilled(false);//ーエナ・イサマヤマヨ  
  btn.setBorder(null);//ボシ蔆カ
  btn.setToolTipText("ホサヨテ: ");//ハ・」チツシ
  btn.setHorizontalTextPosition(AbstractButton.CENTER);
    btn.addMouseListener(this);
    btn.addMouseMotionListener(this); 

  node=new DefaultMutableTreeNode("node1");
  root.add(node);
  btn.setBounds(100,100,40,40);


     jp2.add(btn);
///

  btn=new JButton(new ImageIcon("node.png"));
  btn.setContentAreaFilled(false);//ーエナ・イサマヤマヨ  
  btn.setBorder(null);//ボシ蔆カ
  btn.setToolTipText("ホサヨテ: ");//ハ・」チツシ
  btn.setHorizontalTextPosition(AbstractButton.CENTER);
    btn.addMouseListener(this);
    btn.addMouseMotionListener(this); 
  node=new DefaultMutableTreeNode("node1");
  root.add(node);
  btn.setBounds(200,200,40,40);

     jp2.add(btn);
//
 Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();  

 splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,jp1, jp2);
 splitPane.setOneTouchExpandable(true);
 splitPane.setDividerLocation(150);
 Dimension minimumSize = new Dimension(100, 50);
 jp1.setMinimumSize(minimumSize);
 jp2.setMinimumSize(minimumSize);
 splitPane.setPreferredSize(new Dimension(dim.width-5,dim.height-60));

 JFrame.setDefaultLookAndFeelDecorated(true);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 getContentPane().add(splitPane);
 pack();
 setVisible(true);
  addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e)
      {System.exit(0);}
         });
}

 public void mouseClicked(MouseEvent e)
 { 

 }

 public void mouseEntered(MouseEvent e)
 {

 }
 public void mouseExited(MouseEvent e)
 {
 
  
 }
 public void mouseReleased(MouseEvent e)
 {
 
 }
 public void mousePressed(MouseEvent e)
 {


 }
 public void mouseMoved(MouseEvent e)
 {
  x=e.getX();
  y=e.getY();
 }

 public void mouseDragged(MouseEvent e){
  jb=(JButton)e.getSource();
  jb.setBounds((int)(jb.getBounds().getX())+e.getX()-x,(int)(jb.getBounds().getY())+e.getY()-y,(int)(jb.getBounds().getWidth()),(int)(jb.getBounds().getHeight()));

 }

}
public class test{
public static void main(String args[]){
  new jiemian();
  
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值