gpt4 book ai didi

java - 画线,圈任何东西(Java)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:44 25 4
gpt4 key购买 nike

所以我是 stackoverflow 的新手。

我正要创建一条线,一个三角形等等,但我只是专注于线和良好的面向对象编程。

所以我创建了 Point2D 类:

    package draw;

/**
*
* @author Pedro
*/
public class Point2D {
private int x,y;

// Construtores
public Point2D(){
this(0,0);
}

public Point2D(int x, int y){
this.x=x;
this.y=y;
}

// Set's e Get's
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}

稍后我使用类 point2D 创建类线以获得起点和终点

    package draw;

/**
*
* @author Pedro
*/
public class Linha extends Figura{
private Point2D pinicial;
private Point2D pfinal;

//construtores
public Linha(int xinicial, int yinicial, int xfinal, int yfinal){
pinicial=new Point2D(xinicial, yinicial);
pfinal=new Point2D(xfinal, yfinal);
}
public Linha(Point2D pinicial, Point2D pfinal){
this.pinicial=pinicial;
this.pfinal=pfinal;
}
//Get's e Set's
public Point2D getPinicial() {
return pinicial;
}
public void setPinicial(Point2D pinicial) {
this.pinicial = pinicial;
}
public Point2D getPfinal() {
return pfinal;
}
public void setPfinal(Point2D pfinal) {
this.pfinal = pfinal;
}

}

然后我创建了一个带有名为“line”按钮的 Jframe,并将它放在 jFrame 内的一个面板中,这是它要绘制线条的地方。

问题是......我不知道如何画线或者我应该如何计算它。

你能帮帮我吗?

最佳答案

简单地说,在您的 JPanel 类中 ovverride paintComponent() 方法:

JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g)
g.drawLine(x1, y1, x2, y2);
}
}

其中 x1y1x2y2 是线路的电线。如果您只希望它在按下按钮后画线,请在您的主类中创建一个全局 boolean 变量,并在按下按钮时将其设置为 true,然后在您创建 JPanel 时做:

JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
if (myBoolean) {
super.paintComponent(g)
g.drawLine(x1, y1, x2, y2);
}
}
}

关于java - 画线,圈任何东西(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com