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
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
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”.
Como diria Padre Quevedo: “Isso no existe!”
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
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.
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
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
Sim, eu sei. O que eu questionei foi a relação entre o modelo de um componente e o esquema de highlighting.
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.
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
Ok, companheiro!
Um abraço!