Pessoal,
Eu preciso fazer uma coisa que procurando acho que já não é possivel, vou explicar:
Eu tenho um Frame AWT que possui um Panel e alguns List também do AWT
Eu preciso produzir um efeito de Scroll nessa tela, a qual vai preenchendo os List com valores vindos de outro lugar do meu Software
Ou seja, quando eu rodar a interface AWT ele vai preenchendo um List e o ScroolBar vai descendo passando para o usuário o efeito de Scroll
Acontece que eu tenho que fazer isso usando apenas AWT 1.3
Parece que é super facil fazer isso usando Swing e o tal do invokeLater
Achei um snippet de código que faz mais ou menos o que eu preciso (abaixo)
Minha pergunta é:
- vale a pena continuar fuçando pra ver se é possível fazer usando AWT 1.3
- digo para o meu chefe que não é possível (existe uma possibilidade de que o dispositivo onde vai rodar a aplicação tenha um java um pouquinho mais novo… )
Qualquer ajuda é bem vinda
Obrigado, André
[code]import java.awt.Color;
import java.awt.Frame;
import java.awt.GridBagLayout;
import java.awt.List;
public class Snippet3 extends Frame {
private static final long serialVersionUID = 1L;
private static boolean closeApplication;
public static void main (String args[]) {
long tempoAnterior = System.currentTimeMillis();
GridBagLayout layout = new GridBagLayout();
final Snippet3 snippet = new Snippet3();
snippet.setTitle("Lazy Table");
snippet.setSize (200, 200);
snippet.setBackground(new Color(255,255,255));
snippet.setLayout(layout);
final List list = new List(8,false);
final Thread thread = new Thread() {
public void run() {
int i;
for (i=0; i<1000; i++) {
final int [] index = new int [] {i};
Thread thread2 = new Thread() {
public void run() {
list.add("Table Item "+index[0]);
}
};
thread2.start();
}
snippet.add(list);
snippet.setVisible(true);
if (i==1000){
closeApplication=true;
}
}
};
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
if (closeApplication) {
snippet.dispose();
}
long tempoPosterior = System.currentTimeMillis();
System.out.println("tempo decorrido: "+(tempoPosterior - tempoAnterior));
}[/code]
