Prezados, tive que fazer um trabalho que recebe o raio e o centro e desenha uma circunferência através do calculo de octantes(http://groups.csail.mit.edu/graphics/classes/6.837/F98/Lecture6/circle.html)
Então, fiz um JFrame com dois Jtextfields para capturar essas informações e efetuar os cálculos, mais um botão que ao ser clicado, chama o método que desenha o circulo. Desculpe, não sou uma programadora experiente, me bato em coisinhas simples, e minhas dúvidas são, vai funcionar os componentes do swing mais a impressão do desenho no Jframe juntos?
O botao deve chamar o metodo calculos, porém estou em dúvida se ele irá executar o outro método desenhaCirculo.
Me ajudem por gentileza, ja foram varias noites sem dormir e um feriado neste trabalho…
package cg;
import java.awt.;
import javax.swing.;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
public class DesenhaCirculo extends JFrame{
public class Tela extends JFrame {
private static final int WINDOW_WIDTH = 400;
private static final int WINDOW_HEIGHT = 400;
private JLabel lcentro,lraio;
private JTextField tcentro,traio;
private JButton desenha;
int raio;
int centro;
int xc;
int yc;
int i;
int j;
public Tela() {
setTitle("Círculos");
lcentro = new JLabel("Digite o centro:");
lraio = new JLabel("Digite o raio:");
tcentro = new JTextField();
traio = new JTextField();
desenha = new JButton("Gerar Círculo");
JPanel painel = new JPanel();
painel.setLayout(new GridLayout(10, 5, 5, 5));
painel.add(lcentro);
painel.add(tcentro);
painel.add(lraio);
painel.add(traio);
painel.add(desenha);
setContentPane(painel);
pack();
desenha.addActionListener(this);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent ev) {
raio = Integer.parseInt(traio.getText());
centro = Integer.parseInt(tcentro.getText());
}
@Override public void paint(Graphics g) {
super.paint(g);
}
void inserePonto(Graphics g, int x, int y)
{
g.drawLine(xc, yc, x, y);
}
public void calculos (Graphics g, int xc,int yc,int radius){
radius=raio;
xc=centro;
yc=centro;
int p = 1 - radius;
int y = radius;
for (int x = 0;x <= y;x++) {
desenhaCirculo (g, xc, yc, x, y);
if (p < 0)
p += 2 * x + 1;
else {
y--;
p += 2 * (x - y) + 1;
}
}
}
void desenhaCirculo(Graphics g, int xc, int yc, int x, int y){
inserePonto (g, xc + x, yc + y);
inserePonto (g, xc - x, yc + y);
inserePonto (g,xc + x, yc - y);
inserePonto (g,xc - x, yc - y);
inserePonto (g,xc + y, yc + x);
inserePonto (g,xc - y, yc + x);
inserePonto (g,xc + y, yc - x);
inserePonto (g,xc - y, yc - x);
}
}
}