JScrollPane

6 respostas
java
T

Eu fiz um programa que pega os itens de um arraylist e os adiciona ao JFrame com o valor Label
só que se eu adicionar muitos itens no arraylist,ele irá passar do tamanho do JFrame(altura) e será cortado.
Logo pensei no JScrollPane,só que quando eu adiciono o JFrame ao mesmo,o programa não compila e gera um erro.
Me disseram que o JScrollPane não pode ser usado no JFrame em si,então não sei oque fazer.
Alguma sugestão?

6 Respostas

R

Coloca o ScrollPane e depois coloca um painel dentro, depois disso, só adicionar o que você quer dentro desse painel

T

Boa ideia,vou tentar aqui,valeu!

T

Eu dei uma modificada no programa,agora oque eu digitar em um JTextField e apertar uma certa tecla(enter), o conteúdo do JTextField é adicionado no JFrame por meio de uma JLabel,o método que eu fiz para adicionar um JLabel embaixo do outro é este:

int size = 100; //está no inicio do programa,como uma variável global
public void addListComp() {
int x = list.size();

int y;
for(y = 0; y < x; y++) {

label[y] = new JLabel(list.get(y));

label[y].setBounds(300,size,300,100);

add(label[y]);

 
 System.out.println(label[y].getText());
 size += 	 100;
}

label[y] = new JLabel();

list = new ArrayList<>();

repaint();

}
Como você pode ver o label vai pegando os itens do arraylist e os adicionando um abaixo do outro pois a cada vez que o for termina ele incrementa 100 no size,que nesse caso é o y do label. Mas quando eu adiciono a label no JPanel simplesmente o JLabel não atualiza na tela.Até coloquei outro método abaixo: painel.repaint(); Mas não adiantou nada Poderia me ajudar com esta situação? Obrigado
R

Colocou o add no painel também?

seuJPanel.add(label);
seuJPanel.repaint();
T

Sim

R

Tenta adaptar esse exemplo pra vc, pra mim tá funcionando bem.

private int posicao = 100;
    private void adicionarLabel() {
        posicao += 20;
        JLabel label = new JLabel();
        label.setVisible(true);
        label.setText("Label");
        label.setSize(100, 40);
        label.setLocation(20, posicao);
        seuJPanel.add(label);
        seuJPanel.repaint();
    }
Criado 4 de agosto de 2018
Ultima resposta 5 de ago. de 2018
Respostas 6
Participantes 2