想在一个JPANEL上做这样一根线

时间:2021-06-20 21:31:01
就象股票软件里面,点一下就出现一根线,并且能够来回拖动,并到了具体某一点能显示数字

13 个解决方案

#1


看看一些证券网上怎么做的,找个来反编译一下吧。

#2


推荐一个网站

http://www.cfsc.com.cn/label/sshq/html/sshq_kxfx.jsp?stock_code=000001.SS

#3


呵呵!!!

#4


有没有指导性的意见

#5


学习!

#6


据我所知,这个在java中没有现成的实现,感觉有些困难。根据你的要求,这应该是应用均匀插值曲线,即通过给定的值构造曲线。推荐你查阅有关曲线造型方面的资料。

#7


当然可以啊,这点小事Java还不轻松搞定!
你的JPanel类implements MouseListener, MouseMotionListener不就完了,
至于方法就是你编程的事了。
别忘了addMouseListener()和addMouseMotionListener()。

#8


问题是这个线我用什么组件来实现他,还有我要控制他在一定的范围内移动,我随时能知道他移动的位置

#9


直线还是曲线?直线很简单,曲线有些困难,尤其是要通过给定的形值点。在下愚见!

#10


是直线
http://www.cfsc.com.cn/label/sshq/html/sshq_kxfx.jsp?stock_code=000001.SS
就是上面网址那个线

#11


有没有人回答啊

#12


K线图上面的线不是曲线吗?直线的话用java。awt。geom的Line2D。Float或者。Double类。
“当然可以啊,这点小事Java还不轻松搞定!
你的JPanel类implements MouseListener, MouseMotionListener不就完了,
至于方法就是你编程的事了。
别忘了addMouseListener()和addMouseMotionListener()。”
同意!利用鼠标事件得到直线首尾两个点的坐标,用Line2D就行了。Drag的时候,将原画面repaint掉,再利用鼠标事件中即时的坐标位置重画直线不就成了。

#13


实现很简单其实,我代码贴出来,大家可以共享一下

public void mouseDragged(MouseEvent evt)
   {
   System.out.println(evt.getX());
   Graphics g = getGraphics();
   g.setXORMode(getBackground());
   g.drawLine(start.x,50,end.x,450);
   start.x = evt.getX();
   end.x = evt.getX();
   g.drawLine(start.x,50,end.x,450);
   g.dispose();
   }

#1


看看一些证券网上怎么做的,找个来反编译一下吧。

#2


推荐一个网站

http://www.cfsc.com.cn/label/sshq/html/sshq_kxfx.jsp?stock_code=000001.SS

#3


呵呵!!!

#4


有没有指导性的意见

#5


学习!

#6


据我所知,这个在java中没有现成的实现,感觉有些困难。根据你的要求,这应该是应用均匀插值曲线,即通过给定的值构造曲线。推荐你查阅有关曲线造型方面的资料。

#7


当然可以啊,这点小事Java还不轻松搞定!
你的JPanel类implements MouseListener, MouseMotionListener不就完了,
至于方法就是你编程的事了。
别忘了addMouseListener()和addMouseMotionListener()。

#8


问题是这个线我用什么组件来实现他,还有我要控制他在一定的范围内移动,我随时能知道他移动的位置

#9


直线还是曲线?直线很简单,曲线有些困难,尤其是要通过给定的形值点。在下愚见!

#10


是直线
http://www.cfsc.com.cn/label/sshq/html/sshq_kxfx.jsp?stock_code=000001.SS
就是上面网址那个线

#11


有没有人回答啊

#12


K线图上面的线不是曲线吗?直线的话用java。awt。geom的Line2D。Float或者。Double类。
“当然可以啊,这点小事Java还不轻松搞定!
你的JPanel类implements MouseListener, MouseMotionListener不就完了,
至于方法就是你编程的事了。
别忘了addMouseListener()和addMouseMotionListener()。”
同意!利用鼠标事件得到直线首尾两个点的坐标,用Line2D就行了。Drag的时候,将原画面repaint掉,再利用鼠标事件中即时的坐标位置重画直线不就成了。

#13


实现很简单其实,我代码贴出来,大家可以共享一下

public void mouseDragged(MouseEvent evt)
   {
   System.out.println(evt.getX());
   Graphics g = getGraphics();
   g.setXORMode(getBackground());
   g.drawLine(start.x,50,end.x,450);
   start.x = evt.getX();
   end.x = evt.getX();
   g.drawLine(start.x,50,end.x,450);
   g.dispose();
   }