Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2012, 21:31
h_rojo
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Teclado Virtual

Hey! soy nuevo en este foro pero de verdad ocupo ayuda con este codigo que es para hacer un teclado virtual.
Les explico, el teclado lo tengo que hacer en un componente, ya tengo lo qe es la parte visual con iconos que son archivos png, por lo tanto los "botones" no son Jbutton si no imagenes insertadas.
El problema que tengo es que no se como hacer que escriba dentro de un textfield, passwordfield o textarea.

Les paso los codigos que tengo son 3:


EL PRIMERO

import java.awt.*;
import java.awt.event.*;


public class tecladoLienzo extends Canvas implements MouseListener {
teclas iconos[][];
String nomImagenes[][] = {
{"q.png","","Shift - Up.png"},
{"w.png","a.png","z.png"},
{"e.png","s.png","x.png"},
{"r.png","d.png","c.png"},
{"t.png","f.png","v.png"},
{"y.png","g.png","b.png"},
{"u.png","h.png","n.png"},
{"i.png","j.png","m.png"},
{"o.png","k.png",",.png"},
{"p.png","l.png","..png"},
{"é.png","ñ.png","Qu.png"},
{"Backspace.png","á.png","Enter.png"},
};

int r=3,c=12;

public tecladoLienzo(){
iconos = new teclas[c][r];// solo se crean celdillas pero estan sin memoria
for(int i=0; i<c; i++)
for(int j=0; j<r; j++)
iconos[i][j]= new teclas(nomImagenes[i][j],i,j);

addMouseListener(this);
}

@Override
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.setColor(new Color(131,130,130,100));//Color(R,G,B,Transparency)
g2.fillRoundRect(20, 10, 522, 179, 20, 20);
g2.setColor(new Color(120,120,120,100));
g2.drawRoundRect(20, 10, 522, 179, 20, 20);
for(int i=0; i<c;i++)
for(int j=0; j<r;j++)
iconos[i][j].pintar(this);

}

@Override
public void mouseClicked(MouseEvent me) {
for(int i=0; i<r;i++)
for(int j=0; j<c;j++)
if(iconos[0][0].estaEnArea(me.getPoint()))
System.out.println("se presiono el icono de la posicipon: "+i+","+j);

}

@Override
public void mousePressed(MouseEvent e) {

}

@Override
public void mouseReleased(MouseEvent e) {

}

@Override
public void mouseEntered(MouseEvent e) {

}

@Override
public void mouseExited(MouseEvent e) {

}
}






EL SEGUNDO

import java.awt.*;

public class teclas {

Image imagen;
int x,y;
int indice,i;

public teclas(String nomArchivo, int posx, int posy){
imagen =Toolkit.getDefaultToolkit().createImage(nomArchiv o);
y=40+(47*posy);
x = 30+(47*posx);
}
public void pintar(Canvas f){
Graphics g = f.getGraphics();
g.drawImage(imagen, x, y, f);
}

public boolean estaEnArea(Point datosMouse){
if((datosMouse.x >= x) && (datosMouse.x <= (x+imagen.getWidth(null)))){
if(datosMouse.y >= y && datosMouse.y <= (y+imagen.getHeight(null)))
return true;
}

return false;
}


}




EL TERCERO

public class teclado2 extends javax.swing.JPanel {
tecladoLienzo tec=new tecladoLienzo();
tecladoLienzo teclado;
/** Creates new form teclado2 */
public teclado2() {
initComponents();
tec.setSize(700, 700);
tec.setLocation(10, 10);
add(tec);

}


@SuppressWarnings("unchecked")

private void initComponents() {

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGap(0, 690, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
}




}