能否改变一个已经画好的圆的位置???(java2D,draw()......) 如果在同一个canvas里面职能是擦掉重画 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 跟踪鼠标位置,然后重画就是了监听mouseMove事件,重画用得到Component的Graphics然后直接绘制的方式 根本就没有多个。不是闪烁。插如JPanel也不行,到底怎么做》》??? 自定义一个组件,如:class MyCircle extends JPanel{ //其它代码 //重画组件 void paint(Graphincs g){ //画圆 }}将这个组件加入(设窗口类名为 MyFrame):MyCircle circle = new MyCircle();this.getRootPane().add(circle);this.getRootPane().setLayout(null);//将布局管理器设为空,具体的方法名忘了circle.addMouseMotionListener(new MyMouseMotionListener(this));...class MyMouseMotionListener implements java.awt.MouseMotionListener{ MyFrame adapter; MyMouseMotionListener(MyFrame a){ this.adapter = a; } //实现其它抽象方法: mouseDragged(java.awt.MouseEvent) //当鼠标移动 void mouseMoved(java.awt.MouseEvent e){ //设置“圆”组件的位置 a.circle.setLocation(e.getX(), e.getY()); }}思路就是这样,以上代码的实现可能有不正确,但也只限于拼写方面。 import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.awt.geom.Ellipse2D;public class ne extends JFrame { public ne() { MyCircle circle = new MyCircle(); getRootPane().add(circle); getRootPane().setLayout(null); setBounds(100,100,600,400); show(); } class MyCircle extends JPanel { public void paint(Graphics g) { Graphics2D g2D = (Graphics2D)g; g2D.setPaint(Color.red); g2D.draw(new Ellipse2D.Float(100.f, 100.f, 30.f, 30.f)); } } public static void main(String[] args){ new ne(); }}我照你的改了一下,去掉监听,可什么都没有,空的,你再看看.. 在java中每画的一个图形都可以作为一个对象,改变对象位置就行了 JAVA的paint()函数 jpcap怎么处理应用层数据??? 关于两个循环的输出值 intj=0 。。。求高手答疑 wsdl 只给了一个url 地址。没有wsdl文件。 java强制类型转换的问题??? JTable中单元格编辑问题,急,谢谢 内存垃圾收集问题? 如何读取txt文件? JOptionpane 在java中如何取得一个目录中的文件名?? 高分:大侠们,帮我看一下这个设计思路对吗?(在线等待!) 星际争霸是我最珍爱的游戏,但我至今不能看透其全部,在我眼中它几年来一直被神秘的面纱笼罩着,这个面纱就是计算机语言
监听mouseMove事件,重画用得到Component的Graphics然后直接绘制的方式
插如JPanel也不行,到底怎么做》》???
class MyCircle extends JPanel{
//其它代码
//重画组件
void paint(Graphincs g){
//画圆
}
}
将这个组件加入(设窗口类名为 MyFrame):
MyCircle circle = new MyCircle();
this.getRootPane().add(circle);
this.getRootPane().setLayout(null);//将布局管理器设为空,具体的方法名忘了
circle.addMouseMotionListener(new MyMouseMotionListener(this));
...
class MyMouseMotionListener implements java.awt.MouseMotionListener{
MyFrame adapter;
MyMouseMotionListener(MyFrame a){
this.adapter = a;
}
//实现其它抽象方法: mouseDragged(java.awt.MouseEvent)
//当鼠标移动
void mouseMoved(java.awt.MouseEvent e){
//设置“圆”组件的位置
a.circle.setLocation(e.getX(), e.getY());
}
}
思路就是这样,以上代码的实现可能有不正确,但也只限于拼写方面。
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.geom.Ellipse2D;
public class ne extends JFrame {
public ne() {
MyCircle circle = new MyCircle();
getRootPane().add(circle);
getRootPane().setLayout(null);
setBounds(100,100,600,400);
show();
} class MyCircle extends JPanel {
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D)g;
g2D.setPaint(Color.red);
g2D.draw(new Ellipse2D.Float(100.f, 100.f, 30.f, 30.f));
}
}
public static void main(String[] args){
new ne();
}
}我照你的改了一下,去掉监听,可什么都没有,空的,你再看看..