我想从jButton调用方法。但是当我按下按钮时,GUI会冻结。我已经完成了很多研究,当然我知道这个问题曾多次提出过,但我仍然无法找到解决方案。所以我要问自己。
这是我的方法:
private void c2(){
try{
jTextArea1.setText("");
int n = 0;
float bnyAB,bnyA,bnyB=0;
float supp,conf=0;
for(int a=0;a<dt.size();a++)
{
n++;
for(int b=0+n;b<dt.size();b++)
{
bnyAB=sql2.c2(dt.get(a).getKode_barang(), dt.get(b).getKode_barang());
bnyA=dt.get(a).getNilai();
bnyB=dt.get(b).getNilai();
supp=bnyAB/Integer.parseInt(jTextField1.getText())*100;
if(supp>=Float.parseFloat(jSpinner1.getValue().toString()))
{
conf=(bnyAB/bnyA)*100;
if(conf>=Float.parseFloat(jSpinner2.getValue().toString()))
jTextArea1.setText(jTextArea1.getText()+" Jika membeli \" "+dt.get(a).getNama_barang()+" \" maka akan membeli \" "+dt.get(b).getNama_barang()+" \" dengan Supp "+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");
conf=(bnyAB/bnyB)*100;
if(conf>=Float.parseFloat(jSpinner2.getValue().toString()))
jTextArea1.setText(jTextArea1.getText()+" Jika membeli \" "+dt.get(b).getNama_barang()+" \" maka akan membeli \" "+dt.get(a).getNama_barang()+" \" dengan Supp "+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");
}
}
}
}catch(Exception a){
System.out.println(a);
}
this.revalidate();
}
private void c3(){
int n=0, m=0, o=0;
String item1,item2,item3="";
float bnyABC,bnyAB=0;
float supp,conf=0;
for (int a=0;a<dt.size();a++){
n++;
for(int b=0+n;b<dt.size();b++){
for(int c=0+b+1;c<dt.size();c++){
bnyABC = sql2.c3(dt.get(a).getKode_barang(), dt.get(b).getKode_barang(),dt.get(c).getKode_barang());
supp=bnyABC/Integer.parseInt(jTextField1.getText())*100;
if(supp>=Float.parseFloat(jSpinner1.getValue().toString()))
{
bnyAB=sql2.c2(dt.get(a).getKode_barang(), dt.get(b).getKode_barang());
conf=(bnyABC/bnyAB)*100;
if(conf>=Float.parseFloat(jSpinner2.getValue().toString()))
jTextArea1.setText(jTextArea1.getText()+" Jika membeli \" "+dt.get(a).getNama_barang()+" \" dan \" "+dt.get(b).getNama_barang()+" \" maka akan membeli \" "+dt.get(c).getNama_barang()+" \" dengan Supp "+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");
bnyAB=sql2.c2(dt.get(a).getKode_barang(), dt.get(c).getKode_barang());
conf=(bnyABC/bnyAB)*100;
if(conf>=Float.parseFloat(jSpinner2.getValue().toString()))
jTextArea1.setText(jTextArea1.getText()+" Jika membeli \" "+dt.get(a).getNama_barang()+" \" dan \" "+dt.get(c).getNama_barang()+" \" maka akan membeli \" "+dt.get(b).getNama_barang()+" \" dengan Supp "+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");
bnyAB=sql2.c2(dt.get(b).getKode_barang(), dt.get(c).getKode_barang());
conf=(bnyABC/bnyAB)*100;
if(conf>=Float.parseFloat(jSpinner2.getValue().toString()))
jTextArea1.setText(jTextArea1.getText()+" Jika membeli \" "+dt.get(b).getNama_barang()+" \" dan \" "+dt.get(c).getNama_barang()+" \" maka akan membeli \" "+dt.get(a).getNama_barang()+" \" dengan Supp "+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");
}
}
}
}
actionPerformed按钮调用方法:
private void analisis2BtnActionPerformed(java.awt.event.ActionEvent evt) {
c2();
c3();
}