canvas教程

JAVA中用CANVAS画图

字号+ 作者:H5之家 来源:H5之家 2015-09-24 13:19 我要评论( )

【话题】JAVA中用CANVAS画图 2009-11-17 22:15:35 来自:wanglei96621 浏览数: 31 次 以下是我的代码,请各位帮忙调试!谢谢啦!我的想用CANVAS画一条直线!接受输入数据,然后画线! import java.awt.*; import java.awt.event.*; public class PaintLine {

【话题】JAVA中用CANVAS画图

2009-11-17 22:15:35 来自:wanglei96621 浏览数:31

以下是我的代码,请各位帮忙调试!谢谢啦!我的想用CANVAS画一条直线!接受输入数据,然后画线!
import java.awt.*;
import java.awt.event.*;

public class PaintLine  {

public static void main(String [] args)
{
int x1=0,y1=0,x2=0,y2=0;
CanvasD cd=new CanvasD(x1,y1, x2, y2);
new FrameInOut(cd  );
}
}

class  FrameInOut extends Frame implements MouseListener
{
Label prompt1,prompt2;
TextField t1,t2;
Button btn1;
public FrameInOut(CanvasD cd)
{
super("画直线");
prompt1=new Label("请输入x2:");
prompt2=new Label("y2:");
t1=new TextField(10);
t2=new TextField(10);
btn1=new Button("画线");
int x1=0,y1=0,x2=100,y2=100;
CanvasD cd1=new CanvasD(x1,y1, x2, y2);

setLayout(new FlowLayout());
add(prompt1);
add(t1);
add(prompt2);
add(t2);
add(btn1);
add(cd);
btn1.addMouseListener(this);
addWindowListener(new HandleWin());
setSize(500,500);
setVisible(true);
}
public void mouseClicked(MouseEvent e)
{
if(e.getSource()==btn1)
{


x2=Integer.parseInt(t1.getText());
y2=Integer.parseInt(t2.getText());
}
}

public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}


}
class CanvasD extends Canvas
{
static int a1,b1,a2,b2;
static
{
a1=0;
a2=0;
b1=0;
b2=0;
}
static int x1,y1,x2,y2;
CanvasD(int a1,int b1,int  a2,int b2)
{
x1=a1;
y1=b1;
x2=a2;
y2=b2;
setBackground(Color.gray);
  setSize(300,300);

}

public void paint(Graphics g)
{
g.drawLine(x1,y1,x2,y2);
repaint();
}

setSize(300,300);
}

}

}


class HandleWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
(e.getWindow()).dispose();
System.exit(0);
}
}

更多相关的话题

 

完美堂的梦想回复于17日22点51分 

学习了

 

家有快乐鼠回复于17日23点27分 

自己上网查查,这些都比较基础

 

风卷Ю残云回复于18日02点55分 

顶~

 

刘珈翌回复于18日03点38分 

谢谢大家的帮助,这个问题,我自己也解决了,但各2楼的有点不同,仍然是通过参数传递的,等我进一步调试好后再发上来和大家分享,互相学习!

 

gis4u回复于18日04点11分 

Java code import java.awt.*; import java.awt.event.*; import java.util.logging.Level; import java.util.logging.Logger; public class PaintLine { public static void main(String[] args) { new FrameInOut(); } } class FrameInOut extends Frame/* implements MouseListener ,ActionListener*/ { Label prompt1, prompt2; TextField t1, t2; Button btn1; int x1 = 0, y1 = 0, x2 = 100, y2 = 100; CanvasD cd1; public FrameInOut() { super("画直线"); prompt1 = new Label("请输入x2:"); prompt2 = new Label("y2:"); t1 = new TextField(10); t2 = new TextField(10); btn1 = new Button("画线"); cd1 = new CanvasD(x1, y1, x2, y2); setLayout(new FlowLayout()); add(prompt1); add(t1); add(prompt2); add(t2); add(btn1); add(cd1); t1.setText("" + x2); t2.setText("" + y2); //btn1.addMouseListener(this); btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { click(); } }); addWindowListener(new HandleWin()); setSize(500, 500); setVisible(true); } public void click() { x2 = Integer.parseInt(t1.getText()); y2 = Integer.parseInt(t2.getText()); this.cd1.repaint(); cd1.set(x2, y2); cd1.repaint(0, 0, cd1.getWidth(), cd1.getHeight()); System.out.println("click"); } } class CanvasD extends Canvas { int x1, y1, x2, y2; CanvasD(int a1, int b1, int a2, int b2) { setBackground(Color.gray); setSize(300, 300); set(a1,b1,a2,b2); } public void set(int x1, int y1, int x2, int y2) { this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; repaint(); } public void set(int a1, int b1) { x2 = a1; y2 = b1; repaint(); } public void paint(Graphics g) { Color c = g.getColor(); g.setColor(Color.yellow); g.drawLine(x1, y1, x2, y2); g.setColor(c); } } class HandleWin extends WindowAdapter { public void windowClosing(WindowEvent e) { (e.getWindow()).dispose(); System.exit(0); } }

 

tianleli回复于18日04点49分 

自己调好点。。。都靠别人,。。。什么时候才能独立啊。。。。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • 学习慕课网canvas倒计时实例笔记

    学习慕课网canvas倒计时实例笔记

    2017-04-30 14:01

网友点评
9