Olá pessoal! Tudo bom com vocês?
Sempre soube o que era Thread mas nunca a compreendi…
Tentei usar uma thread para temporizar o crescimento de um painel mas não dá certo, esse codigo que posto é para demonstrar a situação.
package testesGUJ;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class ClassThread extends javax.swing.JFrame {
private JPanel paPainel;
private JLabel lbLabel;
private JButton btBaixar;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
ClassThread inst = new ClassThread();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
public ClassThread(){
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
paPainel = new JPanel();
getContentPane().add(paPainel);
paPainel.setBounds(0, 0, 407, 12);
paPainel.setLayout(null);
paPainel.setBackground(new java.awt.Color(0,128,255));
{
lbLabel = new JLabel();
paPainel.add(lbLabel);
lbLabel.setText("Label");
lbLabel.setBounds(107, 83, 206, 105);
lbLabel.setFont(new java.awt.Font("Tahoma",1,72));
}
}
{
btBaixar = new JButton();
getContentPane().add(btBaixar);
btBaixar.setText("Baixar");
btBaixar.setBounds(141, 304, 122, 21);
}
btBaixar.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e)
{
try{
Thread t = new Thread();
t.start();
while(paPainel.getSize().getHeight()<379)
{
Thread.sleep(10);
paPainel.setBounds(0,0,415,(int)paPainel.getSize().getHeight()+1);
}
t.stop();
}
catch(InterruptedException ex){ex.printStackTrace();}
}
});
pack();
this.setSize(415, 379);
} catch (Exception e) {
e.printStackTrace();
}
}
}
A intenção era que o painel fosse aumentando seu tamanho a medida que o laço vai sendo executado mas o tamanho do painel só é alterado depois do fim do processo.
Alguma luz?
Se o erro for absurdo, sintam-se livres para puxar minha orelha… :lol: :lol: :lol: