Desenho de um círculo

Pessoal, estou desesperado p/ terminar este trabalho e não consigo, estou empacado. O propósito é desenhar uma circunferência em um plano cartesiano por meio de um algoritmo…Mando abaixo o código e peço encarecidamente p/ alguém me ajudar. :cry: Obrigado.

import java.awt.;
import java.awt.event.
;
import java.awt.geom.;
import javax.swing.
;
import java.io.;
import java.lang.
;

abstract class GraphicObject{
class Circle extends GraphicObject{
public class CirculoAnalitico extends JFrame implements ActionListener{

JLabel l1,l2,l3,l4;
JTextField c1,c2,c3,c4;
JButton b1,b2;
List lst;
Panel p;

public CirculoAnalitico(){
	super("Circunferência: Método Analítico");
	setSize(600,645);
	setVisible(true);
	p = new Panel();
	getContentPane().setBackground(new Color (140,150,160));
	getContentPane().setLayout(new BorderLayout());

	l1 = new JLabel("x1");
	l2 = new JLabel("y1");
	l3 = new JLabel("x2");
	l4 = new JLabel("y2");

	c1 = new JTextField(5);
	c2 = new JTextField(5);
	c3 = new JTextField(5);
	c4 = new JTextField(5);
	
	b1 = new JButton("DESENHAR");
	b2 = new JButton("LIMPAR");
	b1.addActionListener(this);
	b2.addActionListener(this);

	lst = new List();

	getContentPane().add(l1);
	getContentPane().add(c1);
	getContentPane().add(l2);
	getContentPane().add(c2);
	getContentPane().add(l3);
	getContentPane().add(c3);
	getContentPane().add(l4);
	getContentPane().add(c4);
	getContentPane().add(p);
	getContentPane().add(lst);
	getContentPane().add(b1);
	getContentPane().add(b2);		
}

int x1, y1, x2, y2;
int dx, dy;

	
public double Raio(int dx,int dy){
	dx = x2 - x1;
	dy = y2 - y1;
	return (Math.sqrt((Math.pow(dx,2))+(Math.pow(dy,2))));
}



public void ActionListener(ActionEvent e){
	if(e.getSource() == b2){
		c1.setText(" ");
		c2.setText(" ");
		c3.setText(" ");
		c4.setText(" ");
		lst.removeAll();
		p.repaint();
	}
	if(e.getSource() == b1){
		try{
			String s1 = c1.getText();
			x1 = Integer.parseInt(s1);
			String s2 = c2.getText();
			y1 = Integer.parseInt(s2);
			String s3 = c3.getText();
			x2 = Integer.parseInt(s3);
			String s4 = c4.getText();
			y2 = Integer.parseInt(s4);
		}
		catch(Exception ex){
			System.out.println("Erro de conversão");
		}
	}
}

public void paint(Graphics g){ 
	
	Point ponto = new Point();
	double passo = (int) 1/Raio(dx, dy);
	double t = 0;
	while (t<2*Math.PI){
		double x = (int) Raio(dx, dy)*Math.cos(t); 
		double y = (int) Raio(dx,dy)*Math.sin(t);
		int a = (int) x + x1; 
		int b = (int) y + y1; 
		g.setColor(Color.black);
		g.drawRect(x2,y2,90,90);
		g.setColor(Color.red);
		g.drawArc(ponto.getX(),ponto.getY(),0,t);
		lst.add(" " +g.toString()+ " " +g.toString());		
		t = (int) t + passo;
	}
	
}

}

}
}

Qual é o problema específico?
Bom, de cara já deu para perceber alguns:

  1. Qual é o objetivo disso?
abstract class GraphicObject{
class Circle extends GraphicObject{ 
  1. O método drawArc recebe como parâmetro 5 inteiros:
    x, y, largura, altura, ângulo de início, ângulo de fim.

A classe Point2D retorna um double pelos seus métodos getX() e getY(). Assim, você deverá fazer uma conversão (int) ponto.getX() ao passa-la como parâmetro para o método drawArc.

  1. Coloque a chamada setVisible(true) no final do contrutor.

Amigão, dê uma lida em um artigo sobre o assunto aqui no GUJ. Creio que vá te ajudare muito!