Bom dia
Estou fazendo um trabalho para a faculdade, onde o mesmo consiste que o usuário deve preencher algumas coordenadas em um textfield e a partir dessas coordenadas o mesmo deve clicar em um botão cujo o nome é circulo e apatir disso o programa deve desenhar um circulo na tela. Com base nas informações levantadas eu fiz o seguinte:
1 - criei uma classe painel que é herda os atributos da classe JPanel.
2 - criei na classe painel um método com o nome de obtemvalores, onde este por passagem de parâmetros recebe as coordenadas informadas pelo usuário.
3 - criei o método paintComponent onde este tem a funcionalidade de desenhar o objeto apartir do tipo informado.
O problema é que quando eu clico no botão circulo por exemplo eu não consigo exibir o painel que eu criei para o usuário dando a impressão que não esta entrando no local que deveria entrar abaixo segue o código fonte para analise.
package aa412;
import java.awt.;
import javax.swing.;
import java.awt.event.;
import java.awt.Graphics.;
class Painel extends JPanel
{
int cdx1,cdx2,cdy1,cdy2;
int tipo;
Painel()
{
repaint ();
}
public void obtemvalores(int tp, int codx1, int codx2, int cody1, int cody2)
{
cdx1 = codx1;
cdx2 = codx2;
cdy1 = cody1;
cdy2 = cody2;
tipo = tp;
}
public void paintComponent (Graphics g)
{
super.paintComponent(g);
Color cor;
cor = Color.blue;
g.setColor(cor);
if (tipo == 1)
{
g.fillOval(cdx1, cdy1, cdx2, cdy2);
}
}
}
public class PBrush extends JFrame implements ActionListener{
JButton botaoReta;
JButton botaoCirculo;
JTextField coordX1;
JTextField coordY1;
JTextField coordX2;
JTextField coordY2;
JPanel panel;
int x1,x2,y1,y2;
public PBrush() {
super("Programa");
}
public Component criaComponentes() {
JButton botaoReta = new JButton("Desenhar Reta");
JButton botaoCirculo = new JButton("Desenhar Circulo");
JTextField coordX1 = new JTextField();
JTextField coordY1 = new JTextField();
JTextField coordX2 = new JTextField();
JTextField coordY2 = new JTextField();
JPanel panel = new JPanel(new GridLayout(3,2));
panel.add(botaoReta);
panel.add(botaoCirculo);
panel.add(coordX1);
panel.add(coordY1);
panel.add(coordX2);
panel.add(coordY2);
return panel;
}
public void mostrarComponentes() {
Component c1 = criaComponentes();
getContentPane().add(c1);
setSize(500,300);
setVisible(true);
}
public void actionPerformed (ActionEvent ae) {
int codx1, cody1, codx2, cody2;
int tipo;
PBrush frame;
frame = new PBrush();
Object obj = ae.getSource(); //botão clicado
if (obj instanceof JButton)
{
JButton b = (JButton) obj;
if (b == botaoCirculo){
codx1 = Integer.parseInt(coordX1.toString());
codx2 = Integer.parseInt(coordX2.toString());
cody1 = Integer.parseInt(coordY1.toString());
cody2 = Integer.parseInt(coordY2.toString());
tipo = 1;
Painel teste;
teste = new Painel();
JFrame resultado;
resultado = new JFrame();
resultado.add(teste);
teste.obtemvalores(tipo, codx1, codx2, cody1, cody2);
resultado.hide();
}
}
}
public static void main(String[] args) {
PBrush app = new PBrush();
app.mostrarComponentes();
}
}
Se alguem puder me ajudar eu agradeço