Olá, tenho um JTextArea que em determinado momento irá receber um texto com várias linhas.
Preciso colocar uma parte deste texto, dentro de um collapse (aquela propriedade para expandir/retrair o texto).
Acontece que não faço a minima ideia de como fazer isso… se alguem puder por favor ajude! Abraço!
Collapse pra swing - Urgente!
P
1 Resposta
Olá.
Vc teria que iniciar uma Thread que diminui o tamanho do componente graduamente e vincular em um botão.
Algo mais ou menos assim:
public class Collapse extends Thread {
public static int DELAY = 50;
public static int SIZE = 2;
private Component comp;
public Collapse(Component c) {
comp = c;
}
private void verticalCollapse(Dimension d) {
if(!comp.isVisible()) return;
if(d == null) d = comp.getSize();
if(d.getHeight() <= 0) {
d.setSize(d.getWidth(), 0);
comp.setSize(d);
comp.setVisible(false);
return;
}
int height = d.getHeight() - SIZE;
d.setSize(d.getWidth(), height);
comp.setSize(d);
Thread.sleep(DELAY);
verticalCollapse(d);
}
public void run() {
this.verticalCollapse(null);
}
}
Eu não testei os valores de size e delay, então teria que ajustar para não ficar muito lento ou muito rápido.
Para tornar o componente visivel é só criar um método que faça o inverso e talvez uma variável boolean para implementar algo do tipo toggle.
Porém essa abordagem não funcionaria bem com um gerenciador de layout.
Abraço.
Criado 1 de julho de 2011
Ultima resposta 2 de jul. de 2011
Respostas 1
Participantes 2