JPanel is not getting Keylistener
843806Oct 27 2007 — edited Oct 29 2007Hi,
I have a JApplet window in that window I have added a JPanel. In that JPanel I had drawn a image. I added the keyListener to the JPanel. But the Key listener is not working
2. If i click the empty panel after i press "1" the key listener is working? why it happen?
Any one knows please tell me ?
My code is
package fingerprints.fingerprintscapture;
import fingerprints.fingerprint.scanners.*;
import summary.*;
import demographic.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import annwyn.webservice.*;
import java.util.*;
import javax.swing.BorderFactory;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import com.jniwrapper.*;
import com.jniwrapper.jawt.*;
import com.jniwrapper.win32.ui.Wnd;
import java.net.*;
import java.io.*;
import java.awt.image.*;
import javax.media.jai.operator.*;
import javax.media.jai.*;
import com.sun.media.jai.codec.*;
import javax.comm.*;
import java.awt.image.BufferedImage;
import javax.media.jai.widget.ScrollingImagePanel;
import java.awt.image.renderable.ParameterBlock;
import javax.imageio.ImageIO;
public class FingerPrint extends JPanel
{
JPanel fingerpanel,button_panel,template_panel,quality_panel;
Panel live_panel=null ;
JRadioButton button1 = null,button2=null,button3=null;
JButton start,match,settings,clear;
ButtonGroup buttongroup=null;
JPanel right_empty,live_empty,left_empty,right_title,left_title,live_title;
Int usb_ok=new Int(0);
ButtonListener blistener=null;
public FingerPrint()
{
buttongroup = new ButtonGroup();
button1=new JRadioButton(new ImageIcon(getClass().getResource("image/Blue_thumb_R.gif")));
button2=new JRadioButton(new ImageIcon(getClass().getResource("image/Blue_index_R.gif")));
buttongroup.add(button1);
buttongroup.add(button2);
setBackground( Color.gray );
setLayout(new BorderLayout());
fingerpanel = new JPanel();
add(fingerpanel,BorderLayout.NORTH);
fingerpanel.setFocusable(true);
fingerpanel.addKeyListener(new MyKeyListener());
fingerpanel.addFocusListener(new FocusListener());
System.out.println(" fingerPanelfocusable ? " + fingerpanel.isFocusable());
try
{
ImageIcon icnn=new ImageIcon(getClass().getResource("image/newright.gif"));
Image im=icnn.getImage();
ImagePanel rightPanel = new ImagePanel(im);
right_empty=new JPanel();
right_empty.setBackground(new Color(74,125,181));
right_empty.setLayout(new BorderLayout());
right_title=new JPanel();
JLabel ri_label=new JLabel("Right Finger");
ri_label.setForeground(Color.white);
ri_label.setFont(new Font("Arial",Font.BOLD+Font.ITALIC,13));
right_title.add(ri_label);
right_title.setBackground(Color.blue);
right_empty.add(right_title,BorderLayout.NORTH);
right_empty.add(rightPanel,BorderLayout.CENTER);
fingerpanel.setLayout(new GridLayout(1,3,20,20));
rightPanel.setBackground(new Color(74,125,181));
fingerpanel.setBackground(new Color(74,125,181));
rightPanel.add(button1);
button1.setBounds(7,104,45,47);
rightPanel.setFocusable(true);
rightPanel.addKeyListener(new MyKeyListener());
System.out.println(" rightPanelfocusable ? " + rightPanel.isFocusable());
rightPanel.addFocusListener(new FocusListener());
blistener = new ButtonListener();
button1.addActionListener(blistener);
fingerpanel.add(right_empty);
live_panel=new Panel();
live_panel.setBackground(Color.white);
live_empty=new JPanel();
live_empty.setBackground(new Color(74,125,181));
live_empty.setLayout(new BorderLayout());
live_title=new JPanel();
JLabel li_label=new JLabel("Live Finger");
li_label.setForeground(Color.white);
li_label.setFont(new Font("Arial",Font.BOLD+Font.ITALIC,13));
live_title.add(li_label);
live_title.setBackground(Color.blue);
live_empty.add(live_title,BorderLayout.NORTH);
live_empty.add(live_panel,BorderLayout.CENTER);
live_panel.setFocusable(true);
live_panel.addKeyListener(new MyKeyListener());
live_panel.addFocusListener(new FocusListener());
fingerpanel.add(live_empty);
ImageIcon icn=new ImageIcon(getClass().getResource("image/newleft.gif"));
Image imag=icn.getImage();
ImagePanel lefttPanel = new ImagePanel(imag);
left_empty=new JPanel();
left_empty.setBackground(new Color(74,125,181));
left_empty.setLayout(new BorderLayout());
left_title=new JPanel();
JLabel le_label=new JLabel("Left Finger");
le_label.setForeground(Color.white);
le_label.setFont(new Font("Arial",Font.BOLD+Font.ITALIC,13));
left_title.add(le_label);
left_title.setBackground(Color.blue);
left_empty.add(left_title,BorderLayout.NORTH);
left_empty.add(lefttPanel,BorderLayout.CENTER);
lefttPanel.add(button2);
button2.setBounds(255,100,40,47);
lefttPanel.setFocusable(true);
lefttPanel.addKeyListener(new MyKeyListener());
lefttPanel.addFocusListener(new FocusListener());
fingerpanel.add(left_empty);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
class FocusListener implements java.awt.event.FocusListener
{
public void focusGained(FocusEvent e)
{
System.out.println("focusGained1 " + e);
}
public void focusLost(FocusEvent e) {
System.out.println("focusLost1 " + e);
}
}
class ButtonListener implements java.awt.event.ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
{
System.out.println("You Pressed button1");
}
}
}
public class MyKeyListener extends KeyAdapter
{
public void keyTyped(KeyEvent ke)
{
System.out.println("KeyTyped");
char code = ke.getKeyChar();
if(code == '1')
{
System.out.println("Pressed 1");
}
}
}
class ImagePanel extends JPanel //implements KeyListener
{
private Image img;
public ImagePanel(String imag)
{
this(new ImageIcon(imag).getImage());
setSize(img.getWidth(this),img.getWidth(this));
}
public ImagePanel(Image img)
{
this.img = img;
Dimension size = new Dimension(321,375);
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
//this.setFocusable(true);
//this.addKeyListener(new MyKeyListener());
}
public void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0,321,375,this);
}
}
}
Regards
Saravanan