【发布时间】:2019-06-09 21:10:41
【问题描述】:
我想使用 java 在画布内画一条线。如果我在 g.drawLine 中使用常量值,则以下程序可以正常工作。当前代码正在绘制没有线条的画布。
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Drawing extends Canvas {
int x1;
int y1;
int x2;
int y2;
public static void main(String[] args) {
Drawing dr = new Drawing(100, 100, 200, 200);
JFrame frame = new JFrame("My Drawing");
Canvas canvas = new Drawing();
canvas.setSize(400, 400);
canvas.setBackground(Color.white);
frame.add(dr);
frame.add(canvas);
frame.pack();
frame.setVisible(true);
}
public void paint(Graphics g, Drawing d) {
super.paint(g);
g.drawLine(d.x1, d.y1, d.x2, d.y2);
}
Drawing(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
Drawing() {
}
}
【问题讨论】:
-
你怎么画一条线?在画布上的 (x,y) 位置按下鼠标按钮。按住按钮并移动到任何新位置 (x1,y1)。释放一个按钮。在 (x,y) 和 (x1,y1) 之间创建线。现在你更清楚一点了吗?
-
感谢您的快速回复。
-
感谢您的快速回复。在paint方法中,我传递了绘图对象,这样我就可以传递x1,y1,x2,y2的值了。油漆(图形 g,绘图 d)。实际上,我想在画布内绘制线条并传递线条坐标值。作为参数
-
好的,有点复杂但仍然很简单。为此,您需要四个文本字段,分别用于 (x,y) 和 (x1,y1) 位置。和一个按钮。一旦按下按钮,它将使用文本字段中提供的值绘制一条线。