JFreeChart鼠标移动能够实时监听横纵坐标值,但是屏幕一直闪跟update(Graphics g)有关,找个高手帮帮忙
publicvoidchartMouseMoved(ChartMouseEventchartMouseEvent){point=chartMouseEvent.getTr...
public void chartMouseMoved(ChartMouseEvent chartMouseEvent) {
point = chartMouseEvent.getTrigger().getPoint();
mouseX = chartMouseEvent.getTrigger().getX();
mouseY = chartMouseEvent.getTrigger().getY();
Point2D point2D = this.chartPanel.translateScreenToJava2D(new Point(mouseX, mouseY));
ChartRenderingInfo info = this.chartPanel.getChartRenderingInfo();
rectangle2D = chartPanel.getScreenDataArea();
yValue = xyplot.getRangeAxis().java2DToValue(point2D.getY(), info.getPlotInfo().getDataArea(), RectangleEdge.RIGHT);
xValue = xyplot.getDomainAxis().java2DToValue(point2D.getX(), info.getPlotInfo().getDataArea(), RectangleEdge.BOTTOM);
refreshAxis(mouseY, mouseX);
}
public void refreshAxis(int mouseY, int mouseX) {
Graphics g = this.getGraphics();
update(g);
int recW = (int) (rectangle2D.getX() + rectangle2D.getWidth());
int recX = (int) rectangle2D.getX();
int recY = (int) rectangle2D.getY();
int recH = (int) (rectangle2D.getY() + rectangle2D.getHeight());
if (mouseX < recW && mouseX > recX && mouseY < recH && mouseY > recY) {
g.drawLine(recX, mouseY, recW, mouseY);
g.drawLine(mouseX, recY, mouseX, recH);
}
}
@Override
public void update(Graphics g) {
if (g.getClip() == null) {
paint(g);
int recX = (int) rectangle2D.getX();
int recY = (int) rectangle2D.getY();
int recH = (int) (rectangle2D.getY() + rectangle2D.getHeight());
int recW = (int) (rectangle2D.getX() + rectangle2D.getWidth());
if (mouseX < recW && mouseX > recX && mouseY < recH && mouseY > recY) {
g.drawString(String.valueOf((int)(yValue)), mouseX + 20, mouseY + 1);
g.drawString(dateFormat1.format(new Date((long) xValue)), mouseX + 20,mouseY + 12);
}
}
}
这个是鼠标监听的代码,JFreeChart显示的那部分因为有点大没有给出来,找个高手帮帮忙,解决了另外追加100分。。。。 展开
point = chartMouseEvent.getTrigger().getPoint();
mouseX = chartMouseEvent.getTrigger().getX();
mouseY = chartMouseEvent.getTrigger().getY();
Point2D point2D = this.chartPanel.translateScreenToJava2D(new Point(mouseX, mouseY));
ChartRenderingInfo info = this.chartPanel.getChartRenderingInfo();
rectangle2D = chartPanel.getScreenDataArea();
yValue = xyplot.getRangeAxis().java2DToValue(point2D.getY(), info.getPlotInfo().getDataArea(), RectangleEdge.RIGHT);
xValue = xyplot.getDomainAxis().java2DToValue(point2D.getX(), info.getPlotInfo().getDataArea(), RectangleEdge.BOTTOM);
refreshAxis(mouseY, mouseX);
}
public void refreshAxis(int mouseY, int mouseX) {
Graphics g = this.getGraphics();
update(g);
int recW = (int) (rectangle2D.getX() + rectangle2D.getWidth());
int recX = (int) rectangle2D.getX();
int recY = (int) rectangle2D.getY();
int recH = (int) (rectangle2D.getY() + rectangle2D.getHeight());
if (mouseX < recW && mouseX > recX && mouseY < recH && mouseY > recY) {
g.drawLine(recX, mouseY, recW, mouseY);
g.drawLine(mouseX, recY, mouseX, recH);
}
}
@Override
public void update(Graphics g) {
if (g.getClip() == null) {
paint(g);
int recX = (int) rectangle2D.getX();
int recY = (int) rectangle2D.getY();
int recH = (int) (rectangle2D.getY() + rectangle2D.getHeight());
int recW = (int) (rectangle2D.getX() + rectangle2D.getWidth());
if (mouseX < recW && mouseX > recX && mouseY < recH && mouseY > recY) {
g.drawString(String.valueOf((int)(yValue)), mouseX + 20, mouseY + 1);
g.drawString(dateFormat1.format(new Date((long) xValue)), mouseX + 20,mouseY + 12);
}
}
}
这个是鼠标监听的代码,JFreeChart显示的那部分因为有点大没有给出来,找个高手帮帮忙,解决了另外追加100分。。。。 展开
6个回答
展开全部
如果你经常上网,如果你现在还不用人体工程学鼠标,你会发现手一天天的酸痛,当你知道“鼠标手”是一种疾病的时候,你很有可能已经患上了这种顽疾,你可以在百度关注一下“ 人体工程学鼠标 ” ,“ 德国 minicute ” 相对比较好,就是开始用的时候你会不怎么习惯。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想要做什么呢?
鼠标移动能够实时监听横纵坐标值
是鼠标的X和Y吗?如果是这样。
Point point = MouseInfo.getPointerInfo().getLocation();
point.x point.y
就是实时的鼠标的坐标点。
鼠标移动能够实时监听横纵坐标值
是鼠标的X和Y吗?如果是这样。
Point point = MouseInfo.getPointerInfo().getLocation();
point.x point.y
就是实时的鼠标的坐标点。
追问
我不是要鼠标的坐标,我需要的JFreeChart 中鼠标移动,随着移动在鼠标旁边弄个矩形框能实时的更新横纵坐标的信息,现在是功能已经实现了,但是鼠标会一直paint() JFreeChart 出现整个屏幕闪烁,不paint ()的话就更新不了。。
追答
这是个问题,别人给我看过坦克大战的代码,也有这个问题,总是在闪。
有人提过,用图片的双缓冲来解决这个问题,我在网上试过给的例子,没发现能解决。
你可以再找一下。
这个我暂时也没有解决的办法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的eclipse或者myeclipse里面没有设置显示行号么?
空引用,这是很常见的问题啊,遇到问题要学会自己先调查,确实解决不了,
再想其他办法,这样可以锻炼你自己的解决问题的能力。
空引用,这是很常见的问题啊,遇到问题要学会自己先调查,确实解决不了,
再想其他办法,这样可以锻炼你自己的解决问题的能力。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然没帮到你,但也能学习学习
追问
等待高手帮忙解决,JFreeChart是静态图,弄出了横纵坐标,显示有点问题真头痛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-14
展开全部
你的问题我留下,等下回答你
追问
多谢,问题比较急,求指教
追答
我看了,你为什么不用jpanel 呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询