、在图形界面中绘制二为坐标系统()其中x轴位于绘图区正中间,y轴位于绘图区的最左边2、根据用户输入的实验数据绘制出数据点和实验连线要求实验点用小叉号表示,并以(x,y)的格式表示出坐标数值
最后用连线连接相邻的数据点
3、跟踪用户鼠标,并时刻把鼠标位置显示在状态拦那位大哥帮帮忙,小妹万分感激
最后用连线连接相邻的数据点
3、跟踪用户鼠标,并时刻把鼠标位置显示在状态拦那位大哥帮帮忙,小妹万分感激
绘出的X,Y轴正方向,Y轴正方向是向上,是向下?
不至于(x,y)字符串掩盖坐标点.(可以捕捉mouseMotion事件,判断当前的鼠标位置.要转化为相应的实验系统的坐标,如果在数据点邻近范围,则重绘面板,并且在坐标点位置显示,如果不是,也要分两种情况,前一个坐标是否被绘制,如果是,则重绘面板,将之删除,如果没有,则不必重绘面板)5.要将鼠标点的坐标点显示在状态栏中,只需要捕捉mouseMotion事件即可.只是个人意见,做个参考意见吧.
import java.awt.event.*;
import java.util.Vector;
import java.util.Enumeration;class GfxTest extends Frame{
Vector v = new Vector();
public static void main(String[] args) {
GfxTest test = new GfxTest();
test.a();
} public void a(){
this.setSize(300, 300);
this.setVisible(true);
this.drawX();
this.addMouseListener(new MouseAdapter(){
int x1;
int y1;
int x2;
int y2;
Graphics g;
public void mousePressed(MouseEvent e){
x1=e.getX();
y1=e.getY();
g = e.getComponent().getGraphics();
g.drawString("("+x1+","+y1+")",x1,y1);
}
public void mouseReleased(MouseEvent e){
x2=e.getX();
y2=e.getY();
MyLine line = new MyLine(x1,y1,x2,y2);
g.drawString("("+x2+","+y2+")",x2,y2);
g.drawLine(x1, y1, x2, y2);
v.add(line);
}
});
}
public void paint(Graphics g){
this.drawX();
Enumeration enums = v.elements();
while(enums.hasMoreElements()){
MyLine line = (MyLine)enums.nextElement();
line.drwaMe(g);
}
}
public void drawX(){
Dimension d = this.getSize();
int y = (int)d.getHeight();
int x = (int)d.getWidth();
this.getGraphics().drawLine(0,y/2,x,y/2);
}
}class MyLine{
int x1,x2,y1,y2;
public MyLine(int x1,int y1,int x2,int y2){
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
public void drwaMe(Graphics g){
g.drawLine(x1, y1, x2, y2);
g.drawString("("+x1+","+y1+")",x1,y1);
g.drawString("("+x2+","+y2+")",x2,y2);
}
}
这种东西也要问,查查API就出来了.
现在的年轻人太浮躁啊~~