minha dúvida é bem básica, estou iniciando no java agora e gostaria de saber como adicionar um método já criado a um botão.
No caso eu estou criando um programa que recebe coordenadas e tamanhos de figuras num textfield. O que eu quero fazer é:
quando eu clicar no botão elipse,(por exemplo) um método é executado e pega os valores da textfield como parâmetros para desenhar a elipse.
Vou postar o código, e gostaria que dissessem se criei certo.
Como no caso de oval, recebe apenas inteiro, eu converti o textfield para string e depois para inteiro, fiz certo isso tbm?
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.geom.*;
class ExplorandoTeclado extends Frame {
//atributos
private TextField coordX, coordY, tamX, tamY;
private JButton elipse, retangulo, desenhar, linha;
private Label tituloCooX, tituloCooY, tituloTamX, tituloTamY;
//construtor
public ExplorandoTeclado (){
super ("Java Paint");
setSize (640,480);
show();
setVisible (true);
setResizable(false); //define que a janela não pode ser maximizada
// habilitando o botão de fechar a janela
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e)
{ dispose(); // mata o objeto "this" (fecha a janela)
System.exit(0); // fecha o programa
}
}
);
BarraDeFerramentas ();
}
//criando o método barra de ferramentas
public void BarraDeFerramentas (){
//carregando o panel
JPanel plano = new JPanel ();
//carregando os icones
ImageIcon elipseIcon = new ImageIcon ("elipse.gif");
ImageIcon retanguloIcon = new ImageIcon ("retangulo.gif");
ImageIcon linhaIcon = new ImageIcon ("linha.gif");
//atribuindo ícones aos botões
elipse = new JButton (elipseIcon);
retangulo = new JButton (retanguloIcon);
linha = new JButton (linhaIcon);
//atribuindo labels e textFields
tituloCooX = new Label ("Posição X: ");
tituloCooY = new Label ("Posição Y: ");
tituloTamX = new Label ("Tamanho X: ");
tituloTamY = new Label ("Tamanho Y: ");
coordX = new TextField ( 3);
coordY = new TextField ( 3);
tamX = new TextField ( 3);
tamY = new TextField ( 3);
//adicionando campos de digitação
plano.add (tituloCooX);
plano.add (coordX);
plano.add (tituloCooY);
plano.add (coordY);
plano.add (tituloTamX);
plano.add (tamX);
plano.add (tituloTamY);
plano.add (tamY);
//adicionando os botões ao Panel
plano.add(retangulo);
plano.add(elipse);
plano.add(linha);
add(plano);
pack ();
setVisible (true);
}
// convertendo os textfields pra string
String c1 = (String) coordX.getText();
String c2 = (String) coordY.getText();
String t1 = (String) tamX.getText ();
String t2 = (String) tamY.getText ();
//criando os métodos de desenho
public void Elipse (Graphics g) {
//convertendo string para inteiros
int cX = Integer.parseInt(c1);
int cY = Integer.parseInt(c2);
int tX = Integer.parseInt(t1);
int tY = Integer.parseInt(t2);
{g.drawOval (cX, cY, tX, tY);}
}
public void Retangulo (Graphics g) {
//convertendo string para inteiros
int cX = Integer.parseInt(c1);
int cY = Integer.parseInt(c2);
int tX = Integer.parseInt(t1);
int tY = Integer.parseInt(t2);
{g.drawRect (cX, cY, tX, tY);}
}
public void Linha (Graphics g) {
//convertendo string para inteiros
int cX = Integer.parseInt(c1);
int cY = Integer.parseInt(c2);
int tX = Integer.parseInt(t1);
int tY = Integer.parseInt(t2);
{g.drawLine (cX, cY, tX, tY);}
}
//atribuindo eventos aos botões
elipse.addActionListener(this);
retangulo.addActionListener (this);
linha.addActionListener (this);
public static void main (String [] args){
ExplorandoTeclado JavaPaint = new ExplorandoTeclado ();
}
}