Kra, pois é, não sei o q está acontecendo, mas dá um erro…não sei se é pq eu mando a thread adormecer…
Os objetivos são dois: fazer o primeito botão chamar o método, e preencher a jTextarea da classe MainGui pela classe Tarefa.
Porém, nenhum dos dois acontece:
Classe da GUI:
package testsPack;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainGui extends javax.swing.JFrame
{
private static final long serialVersionUID = 1L;
private static javax.swing.JButton jButton1, jButton2, jButton3;
private static javax.swing.JScrollPane jScrollPane1;
private static javax.swing.JScrollPane jScrollPane2;
public static javax.swing.JTable jTable1;
public static javax.swing.JTextArea jTextArea1;
public MainGui()
{
initComponents();
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new MainGui().setVisible(true);
}
});
}
private void initComponents()
{
setTitle("WebService Consulta");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1 = new javax.swing.JButton();
jButton1.setText("_Start_");
jButton1.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e1)
{
TarefaContinua.start();
}
}
);
jButton2 = new javax.swing.JButton();
jButton2.setText("_Stop_");
jButton2.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e2)
{
TarefaContinua.stop();
}
}
);
jButton3 = new javax.swing.JButton();
jButton3.setText("_Logs_");
jButton3.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e3)
{
TarefaContinua.exit();
}
}
);
jScrollPane1 = new javax.swing.JScrollPane();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.setEditable(false);
jTextArea1.setBackground(Color.BLACK);
jTextArea1.setDisabledTextColor(Color.ORANGE);
jTextArea1.setEnabled(false);
jScrollPane1.setViewportView(jTextArea1);
jTable1 = new javax.swing.JTable();
jTable1.setEnabled(false);
jTable1.setModel(new javax.swing.table.DefaultTableModel
(
new Object[][]
{
{1, 111}, {2, 222}, {3, 333},
{4, 444}, {5, 555}, {6, 666}
},
new String []
{
"Status", "Total"
}
)
);
jScrollPane2.setViewportView(jTable1);
//INICIO NAO SE PREOCUPE COM ISSO E APENAS O POSICIONAMENTO DOS
//COMPONENTES GERADO AUTOMATICAMENTE PELO NETBEANS
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER)
.add(layout.createSequentialGroup()
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 460, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 375, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jButton3)
.add(jButton2)
.add(jButton1))
.add(31, 31, 31))))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER)
.add(layout.createSequentialGroup()
.add(19, 19, 19)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jButton1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton2)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton3))
.add(jScrollPane2, 0, 0, Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 300, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(15, 15, 15))
);
pack();
//FIM NAO SE PREOCUPE COM ISSO E APENAS O POSICIONAMENTO DOS
//COMPONENTES GERADO AUTOMATICAMENTE PELO NETBEANS
}
}
Classe da tarefa:
package testsPack;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TarefaContinua
{
private static final long INTERVALO = 3600000;
private static int CICLO = 1;
private static Thread t = new Thread();
static MainGui mg = new MainGui();
public static void start()
{
try
{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy - hh:mm:ss");
t.start();
MainGui.jTextArea1.append("\nPROCESSO INICIADO...\n");
Date d1 = new Date();
mg.jTextArea1.append("INICIO: " + sdf.format(d1));
mg.jTextArea1.append("------------TAREFAAAAAAA------------");
Date d2 = new Date();
mg.jTextArea1.append("FIM: " + sdf.format(d2));
t.sleep(INTERVALO); //milisegundos
start();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void stop() {
mg.jTextArea1.append("STOP");
t = null;
}
public static void exit() {
mg.jTextArea1.append("BYE BYE");
System.exit(0);
}
}
Quando clico no Start ele congela junto com a Thread, e depois dá o seguinte erro:
Agradeço qq ajuda pessoal!