Pois é galera, tava querendo fechar a janela q o meu objeto cria… ja tentei dispose() ja tentei System.gc(),
não sei mais oq fazer =D
E tb, nao queria usar o setVisible(false) pq a ideia é fechar ela =P
segue abaixo o codigo.
class grafico:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Grafico extends JFrame
{
int valorY=0;
int size=500;
int n1,n2,n3,n4,n5,n6,n7,n8,n9;
public Grafico(int v1,int v2,int v3,int v4,int v5,int v6,int v7,int v8,int v9, int yAtual)
{
super("Eixo");
setSize(size,size);
setVisible(true);
n1=(size/2)-v1+50;
n2=(size/2)-v2+50;
n3=(size/2)-v3+50;
n4=(size/2)-v4+50;
n5=(size/2)-v5+50;
n6=(size/2)-v6+50;
n7=(size/2)-v7+50;
n8=(size/2)-v8+50;
n9=(size/2)-v9+50;
valorY=(size/2)-yAtual+50;
}
public void paint(Graphics g)
{
super.paint(g);
//Desenha o eixo cartesiano
//g.setColor(new Color(255,0,0));
g.drawLine(0,(size/2)+50,size,(size/2)+50);
g.drawLine((size/2),0,(size/2),size);
//Desenha os pontos em X
for(int i=50; i<=size; i=i+50)
g.drawLine(i, ((size/2)-2)+50, i, ((size/2)+2)+50);
//Desenha os pontos em Y
for(int i=50; i<=size; i=i+50)
g.drawLine(((size/2)-2), i, ((size/2)+2), i);
g.setColor(new Color(255,0,0));
//Desenhando as linhas
g.drawLine(0,n1,50,n2);
g.drawLine(50,n2,100,n3);
g.drawLine(100,n3,150,n4);
g.drawLine(150,n4,200,n5);
g.drawLine(200,n5,250,n6);
g.drawLine(250,n6,300,n7);
g.drawLine(300,n7,350,n8);
g.drawLine(350,n8,400,n9);
g.drawLine(400,n9,450,valorY);
//Marcando os pontos
g.drawLine(50,n2-2,50,n2+2);
g.drawLine(50-2,n2,50+2,n2);
g.drawLine(100,n3-2,100,n3+2);
g.drawLine(100-2,n3,100+2,n3);
g.drawLine(150,n4-2,150,n4+2);
g.drawLine(150-2,n4,150+2,n4);
g.drawLine(200,n5-2,200,n5+2);
g.drawLine(200-2,n5,200+2,n5);
g.drawLine(250,n6-2,250,n6+2);
g.drawLine(250-2,n6,250+2,n6);
g.drawLine(300,n7-2,300,n7+2);
g.drawLine(300-2,n7,300+2,n7);
g.drawLine(350,n8-2,350,n8+2);
g.drawLine(350-2,n8,350+2,n8);
g.drawLine(400,n9-2,400,n9+2);
g.drawLine(400-2,n9,400+2,n9);
}
}
main:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestaGrafico
{
public static void main(String[] args) throws InterruptedException
{
int valorY=0;
int saida=1;
int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0,n9=0;
while(saida==1)
{
Grafico eixo = new Grafico(n1, n2, n3, n4, n5, n6, n7, n8, n9, valorY);
eixo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
n1 = n2;
n2 = n3;
n3 = n4;
n4 = n5;
n5 = n6;
n6 = n7;
n7 = n8;
n8 = n9;
n9 = valorY;
Thread.sleep(1000); // 1 segundo
valorY = (int) ((Math.random() * 250)+1);
System.gc();
}
}
}
Sei que não é a melhor maneira de se fazer um eixo cartesiano/grafico, mas foi oq consegui pensar
vlws