gpt4 book ai didi

java - 如何在这段代码中找到变量 g?

转载 作者:行者123 更新时间:2023-12-04 06:29:31 24 4
gpt4 key购买 nike

如何在这段代码中找到变量 g?我想使用paintComponent 中的fillRect 画线。
请帮忙。

import java.awt.*;
import java.lang.String.*;
import java.util.Scanner;
import java.io.IOException;
import javax.swing.*;

class Test extends JPanel {
public static void main(String[] args) {
String x1;
String x2;
String y1;
String y2;

Scanner sc = new Scanner(System.in);
System.out.print("Podaj pierwsza wspolrzedna pierwszego punktu: ");
x1 = sc.nextLine();
System.out.print("Podaj druga wspolrzedna pierwszego punktu: ");
x2 = sc.nextLine();
System.out.print("Podaj pierwsza wspolrzedna drugiego punktu: ");
y1 = sc.nextLine();
System.out.print("Podaj druga wspolrzedna drugiego punktu: ");
y2 = sc.nextLine();

Test nowy = new Test();
DDA2 dda2 = new DDA2();
dda2.licz(x1, x2, y1, y2);

JFrame ramka = new JFrame();
ramka.setSize(300,300);
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.getContentPane().add(new Test());
ramka.setVisible(true);

}


}



class DDA2 {
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.RED);
}



public void licz(String xx1, String xx2, String yy1, String yy2){
double dxx1 = Double.parseDouble(xx1);
double dxx2 = Double.parseDouble(xx2);
double dyy1 = Double.parseDouble(yy1);
double dyy2 = Double.parseDouble(yy2);
double dx = dxx2 - dxx1;
double dy = dyy2 - dyy1;

if (Math.abs(dx) >= Math.abs(dy))
{
double m = Math.abs(dx);
System.out.println("DX" + m);
}
else
{
// ALGORYTYM PRZYROSTOWY
double m = Math.abs(dy);
//System.out.println("DY" + m);
double x = dxx1;
double y = dyy1;
for (int i=1; i <= m; i++)
{
x = x + dx/m;
y = y + dy/m;
g.fillRect((int) x, (int) y, 1, 1);
}
}

System.out.println("Wspolrzednie punktu pierwszego to: " + "(" + dxx1 + "; " + dxx2 +")");
System.out.println("Wspolrzednie punktu drugiego to: " + "(" + dyy1 + "; " + dyy2 + ")");
}
}

最佳答案

您需要覆盖扩展 JPanel 的类中的 paintComponent(Graphics g) 方法,即您的 Test 类。您在类 DDA2 中编写了一个paintComponent 方法,但它什么也没做。

在paintComponent 方法中,您可以调用:

    g.fillRect(x, y, w, h);

关于java - 如何在这段代码中找到变量 g?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612259/

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