Dois Componentes terem o Foco Ao mesmo tempo

10 respostas
BadGirl

Gostaria de saber se é possível e se alguém sabe fazer isso, pois queria q um trecho selecionado no JTextArea1 e outro trecho selecionado no JTextArea2 ficassem visíveis simultaneamente…

Vlw

10 Respostas

T

Você já viu isso em que programa?
Nunca vi isso ocorrer.
Se você mencionar o fato para alguém da Microsoft que defina padrões de interface com o usuário ele vai ter um “troço”.

Pedrosa

Como diria Padre Quevedo: “Isso no existe!”

G

No swing todos os componentes que permitem a entrada de dados possuem um objeto, responsavel por tratar esses dados, chamado Document. Se os dados que deseja mostrar selecionados forem iguais para os dois componentes, basta criar um objeto do tipo Document, atribuir o texto, fazer o highlight e compartilhar entre os dois JTextArea’s.

Nao ficou claro se os dois JTextArea’s possuem o mesmo conteúdo ou se terão conteúdos diferentes.

gqueiroz

Rodrigo_Manhaes

gqueiroz, não entendi o uso de Document neste caso. Highlights são de responsabilidade do componente visual; um Document, sendo o ‘M’ do MVC, não tem responsabilidade sobre visualização.

S

Os componentes do Swing seguem o MVC. Então cada um deles possui um Model.
JTable -> JTableModel
JTextField -> PlainDocument (eu acho)

então se você deixar os 2 TextAreas com o mesmo Model, o conteúdo dos 2 será o mesmo e as alterações em um deles afetará o outro.

[]s

G

Exato,

Document é uma interface. A implementação default é PlainDocument.

Para o amigo Rodrigo Manhães, eu peço que acesse o link contendo um exemplo http://javaalmanac.com/egs/javax.swing.text/style_HiliteWords.html

gqueiroz

Rodrigo_Manhaes

Sim, eu sei. O que eu questionei foi a relação entre o modelo de um componente e o esquema de highlighting.

Rodrigo_Manhaes

No exemplo linkado, não entendi o porquê do uso de Document se o próprio componente foi passado como parâmetro. Em lugar de

Document doc = textComp.getDocument(); String text = doc.getText(0, doc.getLength());
poder-se-ia ter escrito simplesmente

e ainda se economizaria um try/except.

Ou seja, o modelo de um componente de texto não tem qualquer relação com o esquema de highlighting.

G

Eu citei o objeto Document nao para fazer-se o highlight, mas para ser o objeto que compartilhará o texto entre os dois componentes gráficos, apenas isso.

Abraços

Rodrigo_Manhaes

Ok, companheiro!

Um abraço!

Criado 2 de maio de 2006
Ultima resposta 3 de mai. de 2006
Respostas 10
Participantes 6