JTabbedPane, JPanels, scrolling forçado [RESOLVIDO]

5 respostas
Y

Estou com um problema com JTabbedPane.

Estou fazendo o seguinte:

  • crio alguns JPanels;
  • adiciono componentes a esses JPanels;
  • em seguida, adiciono esses JPanels a um JPanel geral;
  • então, crio uma nova Tab com esse JPanel geral;

A tab é criada, mas não contém nada. Não é possível colocat JPanels em outros? Ou é algum problema específico do TabbedPane?

Outro problema é: como faço para definir posições exatas dentro de um JFrame? Atualmente eu sigo a seguinte estrutura: Gridlayout para o JFrame com algumas linhas. Cada linha pode conter 1 ou mais JPanels. E cada JPanel pode ter nenhum ou vários JPanels. O problema é que desta forma, os JPanels inseridos diretamente no JFrame recebem uma configuração (pelo Container) de modo que ficam todos com exatamente o mesmo tamanho, distribuído de acordo com as dimensões do JFrame. O problema: algumas dessas linhas (JPanels) ficam com os seus componentes muitos apertados, enquanto outras ficam com os espaços muito grandes. O que preciso é definir exatamente a altura de um JPanel. Como faço isso?

Outra coisa que gostaria de saber é: como eu faço um scrolling forçado de um JTextArea? É que preciso, durante determinada Thread, que o JTextArea vá sempre se posicionando (a parte visível) na última linha do mesmo. Há como fazer isso?

Também gostaria de pedir se alguém tem um exemplo de implementação de SplashScreen.

5 Respostas

lina

Oi,
Você fez 2 tópicos iguais rsrsrs… Oo

Sobre seu problema de definir posições exatas dentro de um JFrame, está acontecendo porque você esta tento em mente que um GridLayout tem a mesma função de um nullLayout… (eu acho hehe)

  • Layout nullo, você escolhe as posições para seus componentes (setBounds, size) e não importa onde você queira coloca-los pois você consegue.

  • GridLayout,já e mais complicaods, ele divide o container em uma grade de modo que os componentes podem ser colocados nas linhas e colunas. A classe GridLayout herda a classe Object diretamente e implementa a interface LayoutManager, ou seja cada componente de um GridLayout tem a mesma largura e altura. E os processos de add na grade segue da esquerda pra direita.

Obs: Tem tutorias no guj, sobre Layouts…

Espero ter ajudado…

tchauzin!

Y

A criação dos 2 tópicos iguais foi devida a um problema com a conexão quando eu postei pela primeira vez, uma vez que o tópico não houvera sido criado.

A escolha do Layout foi um descuido. Eu não tenho muito conhecimento de GUI’s.

O tutorial sobre Splash eu já li e já implementei, obrigado.

Sobre o Scroll é simples… digamos que eu crie um JTextArea que mostre na tela somente 4 linhas. Entretanto ele tem mais de 4 linhas de texto, o que eu preciso fazer? Usar a barra cde rolagem, correto? O que quero fazer é que a barra de rolagem se posicione sempre no final do JTextArea, ou seja, que a última linha dele fique sempre visível.

Metaleiro

[color=darkblue]
Não sei se ajuda, eu utilizo da seguinte forma:

Adiciono os componentes aos panels e utilizo o método para determinar a dimensão
[/color]

panelCliente.setPreferredSize(new Dimension(900, 300));
panelGrupo = new JTabbedPane();
        panelGrupo.addTab("Clientes  ", panelCliente);
        panelGrupo.addTab("Empresa", panelEmpresa);
        panelGrupo.addTab("Produto", panelProduto);
        panelGrupo.addTab("Desconto", panelDesconto);
        panelGrupo.addTab("Documentação", panelDocumentacao);
        add(BorderLayout.CENTER, panelGrupo);

[color=darkblue]
Sempre utilizei dessa forma, adiconando os panels dentro do JTabbedPane [/color]

lina

Sempre acreditei que a scroll acompanhac automaticamente,

olha:

http://www.guj.com.br/posts/list/54016.java

se não conseguir cole um trxo como exemplo…

Y

lina, consegui seguindo o exemplo do link passado.

Infelizmente não consegui criar um listener pra fazer essa rolagem a partir do próprio evento de modificação de conteúdo, mas deu certo colocando mais ou menos inline essa ação.

Obrigado a todos.

Criado 7 de abril de 2007
Ultima resposta 11 de abr. de 2007
Respostas 5
Participantes 3