Boa tarde!
estou com uma duvida quanto ao programa que irei aprensentar abaixo, desenvolvi um sisitema para ligar pontos ao sistema cartesiano, entre 10 a -10 em x e Y gostaria de chamar um evento no jbutton para que quando o usuaario entrar com os dados e clicar no botao ele crie um evento para chamar a os pontos e ligar com o novo paramentro dado, alguem pode me ajudar
package TrabPc;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.text.ParseException;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFormattedTextField;
import javax.swing.text.MaskFormatter;
public class TrabPc extends JComponent implements ActionListener{
int px = 0;
int py = 0;
private static final BasicStroke STROKE_FINO = new BasicStroke(0.1f);
JFormattedTextField edtx = new JFormattedTextField();
JFormattedTextField edty = new JFormattedTextField();
private JPanel p = new JPanel();
private JPanel quadro = new JPanel();
public JFrame f = new JFrame("Plano Cartesiano");
private JLabel lbl = new JLabel("Valor Eixo X: ");
private JLabel lbl2 = new JLabel("Valor eixo Y: ");
private JButton btn = new JButton("Mostrar pontos");
public int eixoX[] = new int[20];
public int eixoY[] = new int[20];
public void paintComponent(Graphics g) {
//opcoes do traço
//g.setStroke(STROKE_FINO);
g.setColor(Color.BLACK);
// g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//XOR só pra aparecer melhor
g.setXORMode(Color.white);
//Eixo X
g.drawLine(20, 287, 565, 287);
//Eixo Y
g.drawLine(293,80, 293, 540);
g.setPaintMode();
//Definindo pontos para o plano cartesiano
int ptsX = 560;
int ptsY = 540;
for (int xcont=0 ; xcont<20 ; xcont++){
eixoX[xcont] = ptsX;
eixoY[xcont] = ptsY;
ptsX -=28;
ptsY -=24;
g.drawLine(eixoX[xcont], 285, eixoX[xcont], 290);
g.drawLine(292, eixoY[xcont], 297, eixoY[xcont]);
//Ligando ao ponto Y
g.drawLine(eixoX[px],287,eixoX[px], eixoY[py]);
//Ligando ao ponto X
g.drawLine(eixoX[px], eixoY[py], 293,eixoY[py]);
//desenhndo Elipse de encontro dos pontos
g.fillOval(eixoX[px]-2, eixoY[py]-2, 5, 5);
}
}
private void MontaForm()throws ParseException{
TrabPc form = new TrabPc();
quadro.add(form) ;
quadro.repaint();
btn.addActionListener(this);
edtx.setColumns(3);
edty.setColumns(3);
p.setSize(600, 50);
p.setBackground(Color.WHITE);
p.add(lbl);
p.add(edtx);
p.add(lbl2);
p.add(edty);
p.add(btn);
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(p);
f.getContentPane().add(form, BorderLayout.CENTER);
f.pack();
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setVisible(true);
f.setSize(600, 600);
}
public void actionPerformed(ActionEvent e) {
px = Integer.parseInt(edtx.getText()) ;
py = Integer.parseInt(edty.getText()) ;
repaint();
}
public static void main(String[]args)throws ParseException{
new TrabPc().MontaForm();
}
}
o mais dificil ja foi feito q é o desenvolvimento do algoritimo como nao sou mto bom em java gostaria de saber como chamar os eventos e o uso destes metodos como o repaint() etc.