olá, estou tentando criar um gráfico dinâmico onde o mesmo fica atualizando de acordo recebe os dados de um dispositivo por meio do SNMP, consegui fazer o gráfico aparecer, porém ele só aparece no final da execução do código, sei que tem que ser por thread, mas não estou sabendo onde coloco o código, alguém saberia me ajudar?
Quero que rode o código quando eu clico no botão iniciar e parar quando clicar no botão parar:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
CategoryDataset dados = createDataset(jTextFieldIP.getText(),jTextFieldOIDIn.getText(),jTextFieldOIDOut.getText());
String titulo = "";
String eixoy = "bps";
String txt_legenda = "(t)";
boolean legenda = false;
boolean tooltips = false;
boolean urls = false;
// retornaDadoss("192.168.1.69", "1.3.6.1.2.1.31.1.1.1.6.3", "1.3.6.1.2.1.31.1.1.1.10.3");
JFreeChart graf = ChartFactory.createLineChart(titulo, txt_legenda, eixoy, dados, PlotOrientation.VERTICAL, legenda, tooltips, urls);
ChartPanel myChartPanel = new ChartPanel(graf, true);
myChartPanel.setSize(jPanel1.getWidth(),jPanel1.getHeight());
myChartPanel.setVisible(true);
jPanel1.removeAll();
jPanel1.add(myChartPanel);
jPanel1.revalidate();
jPanel1.repaint();
}
private CategoryDataset createDataset(String IP, String OIDin, String OIDout) {
String bytesin1, bytesout1, bytesin2, bytesout2;
Bytes teste1=new Bytes();
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
int i=0;
try{
while(i<20){
bytesin1 = teste1.Bytes(IP,OIDin);
bytesout1 = teste1.Bytes(IP, OIDout);
TimeUnit.SECONDS.sleep(1);
bytesin2 = teste1.Bytes(IP, OIDin);
bytesout2 = teste1.Bytes(IP, OIDout);
System.out.println("Downlo: "+((Float.parseFloat(bytesout2)-Float.parseFloat(bytesout1))*8)+"B/s");
System.out.println("Upload: "+((Float.parseFloat(bytesin2)-Float.parseFloat(bytesin1))*8)+"B/s");
dataset.addValue(((Float.parseFloat(bytesin2)-Float.parseFloat(bytesin1))*8),"Download",Integer.toString(i));
dataset.addValue(((Float.parseFloat(bytesout2)-Float.parseFloat(bytesout1))*8),"Upload",Integer.toString(i));
i++;
}
}catch(Exception e){
System.out.println(e);
}
return dataset;
}
