Fala ae galera… tudo tranquilo???
Bom estou trabalhando em um projeto para a faculdade e me deparei com um problema que até agora não consigo resolver e peço a ajuda do pessoal do fórum ae!!
Bom é o seguinte… Eu abri um campo pra cara digitar um texto com uma JTextArea…nessa janela tem um menuBar lá em cima que tem a opção buscar palavra… Quando o cara clica ele digita a palavra e em seguida Tenhu que fazer a busca na minha TextArea para ver se a palavra existe ou não e caso exista eu queria setar essa palavra… mudar a fonte… colocar em negrito ou algo do gênero…
AE que mora a dúvida… como vou fazer uma varredura buscando as palavras e como ficaria a comparação
Eu utilizei um método da classe String chamado StringTokenizer mas parece que não fiz algo correto na hora de fazer a comparação para ver se as palavras são iguais… ae segue o código
JMenuItem palavra = new JMenuItem(“Palavra…”);
palavra.setMnemonic(‘p’);
buscar.add(palavra);
palavra.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String pBusca = JOptionPane.showInputDialog(null,"Digite a palavra a ser encontrada no texto");
StringTokenizer token = new StringTokenizer (pBusca);
while (token.hasMoreTokens()){
if(token.equals (pBusca)){
// não sei se essa comparação tá certa... caso esteja falta ainda colocar o código que pedi acima
Bom é isso ae… Caso não tenha sido claro por favor postem aqui que eu tento esclarecer…
Um forte abraço a todos e muito obrigado pela atenção…
André Felipe
JTextArea nao serve pra suas necessidades! ela so aceita texto plano (TODO negrito, TODO vermelho, etc…)
JEditorPane resolve… http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html
quanto à busca, tem um erro sim. o StringTokenizer separa as palavras de acordo com uma string passada. como voce tem um texto e quer comparar cada palavra do texto com a sua palavra da busca, voce pode fazer assim:
String pBusca = JOptionPane.showInputDialog(null,"Digite a palavra a ser encontrada no texto");
StringTokenizer token = new StringTokenizer (" "); //string espaço ' '
while (token.hasMoreTokens()){
String atual = token.nextToken();
if(atual.equals (pBusca)){
//encontrou a palavra! da um jeito de pegar a localizacao dela pra
//realçar o texto depois
}
}
espero que ajude
Bom amigão valeu mesmo pela dica… consegui fazer a busca aqui…
Só que é aquilo… ele acha a palavra mas eu não sei como setar essa palavra… Se alguém souber please me dá um help aqui!!!
A amigos gostaria de pedir mais uma ajuda…
Eu disponibilizei um menu para o cara poder alterar a cor de fundo do JEditorPane mas até agora não tá funfando…
E gostaria também de disponibilizar pro cara mudar a cor da fonte…
Se alguém souber please me ajuda!!!
O código dessa parte segue ae
JMenuItem formatar = new JMenuItem(“Formatar texto”);
formatar.setMnemonic(‘r’);
format.add(formatar);
formatar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evt) {
// TODO Auto-generated method stub
color = JColorChooser.showDialog(null,"Menu de Cores",color);
if (color == null)
color = Color.LIGHT_GRAY;
//String text = texto.getText();
}
}
);
JMenuItem muda = new JMenuItem ("Mudar cor de fundo");
muda.setMnemonic('m');
format.add(muda);
muda.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
color = JColorChooser.showDialog(null,"Menu de Cores",color);
if (color ==null);
color = Color.white;
texto.setBackground(color);
JOptionPane.showMessageDialog(null,"Sua cor de fundo foi alterada \n verifique a cor de sua fonte e se necessário \n altere-a pelo menu Formatar texto");
}
}
);
Bom desde já obrigado pela atenção de todos ae!!!
Grande abraço!