Alguem me da dica de como implementar isso?

8 respostas
R

Gostaria de implementar duas funcionalidades no meu programa.

  1. um contador de caracteres decente
  2. um pre-visualizador de url…

explicação:
eu pensei, e ate implementei um contador de caracteres usando oevento KeyPressed… mas o problema se da no primeiro caractere q nao conta. a partir do segundo conta normal…
e o maior problema. se eu seelcionar um texto e da crtl+c e crtl+v ele nao conta os caracteres, ficando dessa forma ruim para eu limitar um tamanho fixo. entao gostaria de dicas ou algum evento melhor que permita nao só as teclas digitas como o copiar e colocar também…

sobre o pre-visualizador, a classe URL retorna pra mim uma string com o codigo html do site, porem tem alguma classe que me permita eu colocar num form o conteudo dela??? a classe EmailHtml do jakarta vc passa a string com o codigo html e ele envia o conteuodo dessa pagina, porem antes de enviar, gostaria de poder mostrar pro usuario que está enviando como será que irá pro email da pessoa…alguem tem alguma ideia???

agradeço qualquer ajuda :slight_smile:

8 Respostas

M

Mas oq vc estária usando isso para WEB ou Swing??

Se for para swing, a primeira questão se resolve usando Document para limitar os caracteres inseridos no JTextField. De uma olha neste tutorial.

http://www.guj.com.br/java.tutorial.artigo.29.1.guj

davidbuzatto

Ao invés de um KeyListener vc pode usar um CaretListener… Acho que funcionaria melhor.

Já quanto a visualização de arquivos HTML, se for algo simples, vc pode usar o JEditorPane.

Até mais!

R

tou usando swing. e tou usando jEditorPane
consegui fazer o seguinte codigo no evento KeyPressed,

if(jEditorPane2.getText().length()>=5){ evt.consume(); jEditorPane2.setText(jEditorPane2.getText().substring(0,5)); } String position = String.valueOf(jEditorPane2.getText().length()+1); caractereCount.setText(position); //onde caractereCount é um JLabel
funciona normal para limitar o caractere tanto digitando como copiando e colando…
porem na hora de incrementar e decrementar os valores ele apresenta falha…
por exemplo, de inicio começa em 0… aperto a primeira letra e continua em zero… aperto a segunda e fica 1… qdo aperto a ultima letra ele trava normalmente e qdo apertamos ele soma…
alguem sabe onde pode ta o erro???

sobre o visualizador, é bem simples mesmo…ja tou usando o JEditorPane mas como poderia mostrar o conteudo da pagina? a classe que me retorna a url eu ja tenho, como setar isso no JEditorPane para que ele nao mostre a String e sim o conteuodo da pagina???

fec

Raphael,o setPage(URL) não serviria??

R

fec:
Raphael,o setPage(URL) não serviria??


amigo, tentei como voce disse, mas se eu colocar uma String “http://uol.com.br” ele mostra todo distorcido sem contar q nao é a pagina verdadeira que será enviada… se eu colocar a String que é o codigo html do site(ja que é isso q a classe url retorna) ele da um monte de erro… :frowning:

R

ngm help??

kikostyle

Cara da uma olhada nesse codigo, é um JFrame com dois campos, um de telefone e outro de data. Não entendi bem se é isso que vc precisa.

import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.text.ParseException;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;

public class TextFieldComMascara extends JFrame {

	private JFormattedTextField telefone;

	private JFormattedTextField data;

	public TextFieldComMascara() throws HeadlessException, ParseException {

		MaskFormatter ftmTelefone = new MaskFormatter("####-####");
		MaskFormatter ftmData = new MaskFormatter("##/##/####");

		this.telefone = new JFormattedTextField(ftmTelefone);
		this.data = new JFormattedTextField(ftmData);

		ftmTelefone.setValidCharacters("[telefone removido]");
		ftmData.setValidCharacters("[telefone removido]");

		telefone.setColumns(6);
		data.setColumns(6);

		add(telefone);
		add(data);

		setLayout(new FlowLayout());
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setSize(200, 200);
		setVisible(true);
	}

	public static void main(String[] args) {
		try {
			TextFieldComMascara teste = new TextFieldComMascara();
		} catch (HeadlessException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

}
R
kikostyle:
Cara da uma olhada nesse codigo, é um JFrame com dois campos, um de telefone e outro de data. Não entendi bem se é isso que vc precisa.
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.text.ParseException;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;

public class TextFieldComMascara extends JFrame {

	private JFormattedTextField telefone;

	private JFormattedTextField data;

	public TextFieldComMascara() throws HeadlessException, ParseException {

		MaskFormatter ftmTelefone = new MaskFormatter("####-####");
		MaskFormatter ftmData = new MaskFormatter("##/##/####");

		this.telefone = new JFormattedTextField(ftmTelefone);
		this.data = new JFormattedTextField(ftmData);

		ftmTelefone.setValidCharacters("[telefone removido]");
		ftmData.setValidCharacters("[telefone removido]");

		telefone.setColumns(6);
		data.setColumns(6);

		add(telefone);
		add(data);

		setLayout(new FlowLayout());
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setSize(200, 200);
		setVisible(true);
	}

	public static void main(String[] args) {
		try {
			TextFieldComMascara teste = new TextFieldComMascara();
		} catch (HeadlessException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

}
nao é isso nao, o q eu quero é um contador de caracteres num jeditorpane.. exemplo.. voce digita: RaphaelSantos e enquanto vc vai digitando, um contador vai mostrando(assim como é nos sites da oi e claro quando vc ta escrevendo alguma mensagem). minha outra duvida é em relação a pre-visualizar uma pagina... meu programa pega uma string, onde essa string contem um codigo HTML...eu queria passar essa string pra um form que mostrasse o conteuodo HTML do mesmo... alguma ideia???
Criado 15 de julho de 2007
Ultima resposta 17 de jul. de 2007
Respostas 8
Participantes 5