Ho provato a togliere sleep il problema rimane.
Forse ho capito che c'è che non va. È il resto del codice. Se provo il codice che ho messo in un programma separato funziona alla perfezione, ma se metto dell'altro codice nel frattempo che il Thread è un corso si blocca. Vi faccio vedere un esempio di codice.
public class cancellami extends javax.swing.JFrame {
public cancellami() {
initComponents();
barra_progrezzo_();
while(true){
try {
Thread.sleep(10);
jLabel1.setText(""+new Random().nextInt(1000));
} catch (Exception e) {
}
}
}
Thread thread_della_barra;
public void barra_progrezzo_() {
thread_della_barra = new Thread(new Runnable() {
int conta_barra = 0;
public void run() {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500, 200);
frame.setLayout(new AbsoluteLayout());
// frame.setResizable(false);
frame.setIconImage(new ImageIcon("logo.png").getImage());
JProgressBar barra = new JProgressBar(0,
Integer.parseInt(new DecimalFormat("#").format(1000)));
frame.getContentPane().add(barra, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, 380, 56));
barra.setBackground(Color.WHITE);
barra.setStringPainted(true);
barra.setFont(new java.awt.Font("Tahoma", 1, 30)); // NOI18N
while (true) {
try {
thread_della_barra.sleep(10);
System.out.println(conta_barra);
barra.setValue(conta_barra++);
} catch (Exception e) {
System.out.println(".run()" + e);
}
}
}
});
thread_della_barra.start();
}
Se faccio partire il codice qui sopra vedo di nuovo la progressbar nera, mentre se faccio partite questo codice che è lo stesso di sopra ma senza il while con dentro new Random() funziona alla perfezione...
public class cancellami extends javax.swing.JFrame {
public cancellami() {
initComponents();
barra_progrezzo_();
/* while(true){
try {
Thread.sleep(10);
jLabel1.setText(""+new Random().nextInt(1000));
} catch (Exception e) {
}
}*/
}
Thread thread_della_barra;
public void barra_progrezzo_() {
thread_della_barra = new Thread(new Runnable() {
int conta_barra = 0;
public void run() {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500, 200);
frame.setLayout(new AbsoluteLayout());
// frame.setResizable(false);
frame.setIconImage(new ImageIcon("logo.png").getImage());
JProgressBar barra = new JProgressBar(0,
Integer.parseInt(new DecimalFormat("#").format(1000)));
frame.getContentPane().add(barra, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, 380, 56));
barra.setBackground(Color.WHITE);
barra.setStringPainted(true);
barra.setFont(new java.awt.Font("Tahoma", 1, 30)); // NOI18N
while (true) {
try {
thread_della_barra.sleep(10);
System.out.println(conta_barra);
barra.setValue(conta_barra++);
} catch (Exception e) {
System.out.println(".run()" + e);
}
}
}
});
thread_della_barra.start();
}
E per la cosa che mi è sstata scritta sopra. Allora al posto di stop che cosa devo mettere?
Adesso sto provando a mettere tutto il resto del codice in un altro thread separato, vediamo se funziona, ma che macello però