como o aparelho qtek 9090 nao esta colaborando com o textfield, pois o mesmo “estica” o componente para 5 linhas…ficando horrivel na tela…
por isso usando o customitem…estou arranhando a criacao do componente textfield…logico que é dificil e sozinho nao irei conseguir…porem com a ajuda da galera…quem sabe nao sai um projeto legal…
segue a minha classe…só que na emulacao do qwerty os eventos de teclas foram disparados, mas ao colocar no aparelho…nao funcionou nada…como se nao tivesse teclando nada…esse é o primeiro desafio nosso…ok
A Classe LTextField pode ser importada na paleta de Componentes Custom no netbeans…
ok…espero que alguem se interesse pelo assunto…ou quem ja fez mostra ai para nós…obrigado…
/*
LTextField.java
Created on 17 de Outubro de 2007, 10:58
To change this template, choose Tools | Template Manager
@author Clayton Ivan
*/
public class LTextField extends CustomItem{
private int largura;
private int altura;
private String texto;
private Graphics canvas;
/** Creates a new instance of LTextField */
public LTextField(int altura, int largura) {
super(“LyTextField”);
this.largura = largura;
this.altura = altura;
}
public void setTexto(String texto){
this.texto = texto;
}
public String getTexto(){
return texto;
}
protected int getMinContentWidth() {
return largura;
}
protected int getMinContentHeight() {
return altura;
}
protected int getPrefContentWidth(int i) {
return largura;
}
protected int getPrefContentHeight(int i) {
return altura;
}
protected void paint(Graphics g, int w, int h) {
canvas = g;
g.setColor(255, 255, 255);
g.fillRect(0, 0, w-1, h-1);
/** Creates a new instance of CodKeys */
public CodKeys() {
}
/**
Configuracao de teclas para o modelo qTek 9090 (status nao concluido)
*/
public static String qTek_CaracterDigitado(Integer keyValue){
final char[] charset = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’”.toCharArray();
final int[] codigoTecla = new int[65];
codigoTecla[0] = 65;
Hashtable hashKey = new Hashtable();
hashKey.put(new Integer(65), new String(“A”));
hashKey.put(new Integer(97), new String(“a”));
[quote=clayton1nico]como o aparelho qtek 9090 nao esta colaborando com o textfield, pois o mesmo “estica” o componente para 5 linhas…ficando horrivel na tela…
por isso usando o customitem…estou arranhando a criacao do componente textfield…logico que é dificil e sozinho nao irei conseguir…porem com a ajuda da galera…quem sabe nao sai um projeto legal…
segue a minha classe…só que na emulacao do qwerty os eventos de teclas foram disparados, mas ao colocar no aparelho…nao funcionou nada…como se nao tivesse teclando nada…esse é o primeiro desafio nosso…ok
A Classe LTextField pode ser importada na paleta de Componentes Custom no netbeans…
ok…espero que alguem se interesse pelo assunto…ou quem ja fez mostra ai para nós…obrigado…
/*
LTextField.java
Created on 17 de Outubro de 2007, 10:58
To change this template, choose Tools | Template Manager
@author Clayton Ivan
*/
public class LTextField extends CustomItem{
private int largura;
private int altura;
private String texto;
private Graphics canvas;
/** Creates a new instance of LTextField */
public LTextField(int altura, int largura) {
super(“LyTextField”);
this.largura = largura;
this.altura = altura;
}
public void setTexto(String texto){
this.texto = texto;
}
public String getTexto(){
return texto;
}
protected int getMinContentWidth() {
return largura;
}
protected int getMinContentHeight() {
return altura;
}
protected int getPrefContentWidth(int i) {
return largura;
}
protected int getPrefContentHeight(int i) {
return altura;
}
protected void paint(Graphics g, int w, int h) {
canvas = g;
g.setColor(255, 255, 255);
g.fillRect(0, 0, w-1, h-1);
/** Creates a new instance of CodKeys */
public CodKeys() {
}
/**
Configuracao de teclas para o modelo qTek 9090 (status nao concluido)
*/
public static String qTek_CaracterDigitado(Integer keyValue){
final char[] charset = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’”.toCharArray();
final int[] codigoTecla = new int[65];
codigoTecla[0] = 65;
Hashtable hashKey = new Hashtable();
hashKey.put(new Integer(65), new String(“A”));
hashKey.put(new Integer(97), new String(“a”));
return (String) hashKey.get(keyValue);
}
}
[/quote]
Se o problema é que não aparece, poderia começar a dar uma olhada no drawString. Não sei se o Anchor (consulte o javadoc) que você passou (0) seria válido.
Normalmente é usado uma expressão “TOP | LEFT”.
Implementar um TextField no celular envolve você controlar quantas repetições houve da mesma tecla dentro de um espaço de tempo aceitável e a partir daí vc pode determinar qual a real letra ou número que deverá entrar nele.
Ok amigo…realmente ficou complicado…porem o q me desanimou foi q no qtek os codigos das teclas nao funcionam…só no emulador a tecla A me responde 97…aí desanimei e pesquisei o superwaba…para esse problema foi dez a solucao…agora sou livre para deixar o textfield do tamanho e altura que eu quiser…hheeheh
Vou fazer em canvas, mas tenho umas dúvidas ainda…
Tenho que fazer por exemplo, um método auxiliar que pegue a ‘letra’ de determinado código de tecla?
E como controlo a repetição, já que não consegui nenhum efeito com o keyRepeated :oops:
Axei um exemplo de repetição, mas fico meio vago.
Precisei de um teclado touch num projeto, então acabei deixando um pouco de lado essa repetição, mas logo logo vou precisar, aí vou estudar o exemplo.