KeyEvent Not Responding?

hello there

in my following sample iam using the keyEvent but it is not working

i don't know why?

here is the code:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.text.NumberFormatter;

import javax.swing.JFrame;

import javax.swing.JButton;

import java.awt.Image;

import javax.swing.ImageIcon;

import java.awt.Toolkit;

import java.awt.Container;

import java.awt.event.ActionListener.*;

import java.awt.event.ActionEvent.*;

import java.lang.Runtime;

import java.io.*;

import java.io.IOException;

import java.rmi.*;

import java.rmi.server.*;

import java.math.*;

import java.util.*;

import java.text.*;

import javax.swing.text.*;

import javax.swing.JMenuItem;

import javax.swing.JPopupMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenu;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.awt.event.KeyEvent;

import java.awt.AWTException;

import java.awt.Desktop;

import java.awt.SystemTray;

import java.awt.TrayIcon;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

class systemtrayextends JFrame

{

private Desktop desktop;

private TrayIcon trayIcon=null;

private SystemTray tray;

private PopupMenu popup;

private MenuItem unHideItem;

private MenuItem defaultItem;

JTextField txt=new JTextField("Hello",5);

JPanel pnl=new JPanel();

public systemtray()

{

super("System Tray");

if (Desktop.isDesktopSupported()){

desktop = Desktop.getDesktop();

}

initComponents();

Container c=getContentPane();

pnl.add(txt);

c.add(pnl);

setSize(350,200);

setResizable(false);

setVisible(true);

c.addKeyListener(new KeyAdapter(){

publicvoid KeyPressed(KeyEvent evt){

if ( ((evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_F4)) )

{

System.exit(0);

}

}

});

}

protectedvoid UnHide()

{

setVisible(true);

setupSystemTray();

}

privatevoid initComponents(){

setupSystemTray();

}

privatevoid setupSystemTray(){

if (SystemTray.isSupported()){

final SystemTray tray = SystemTray.getSystemTray();

Image image = Toolkit.getDefaultToolkit().getImage("D:\\Other\\JAVA\\Icons\\shutdown.png");

ActionListener exitListener =new ActionListener(){

publicvoid actionPerformed(ActionEvent e){

System.exit(0);

}

};

ActionListener unHideListener =new ActionListener(){

publicvoid actionPerformed(ActionEvent e){

UnHide();

tray.remove(trayIcon);

}

};

ActionListener actionListener =new ActionListener(){

publicvoid actionPerformed(ActionEvent e){

UnHide();

tray.remove(trayIcon);

}

};

PopupMenu popup =new PopupMenu();

MenuItem defaultItem =new MenuItem("Exit");

defaultItem.addActionListener(exitListener);

MenuItem unHideItem =new MenuItem("Restore");

unHideItem.addActionListener(unHideListener);

popup.add(unHideItem);

popup.add(defaultItem);

trayIcon =new TrayIcon(image,"JShutdown Timer",popup);

class TrayActionListenerimplements ActionListener{

publicvoid actionPerformed(ActionEvent ee){

trayIcon.getPopupMenu();

}

};

trayIcon.setImageAutoSize(true);

trayIcon.addActionListener(actionListener);

trayIcon.addActionListener(new TrayActionListener());

try{

tray.add(trayIcon);

}catch (AWTException e){

}

}

else{

}

}

publicstaticvoid main(String args[]){new systemtray();}

}

[8202 byte] By [First_knighta] at [2007-11-27 8:36:21]
# 1

is there is an error in that code?

c.addKeyListener(new KeyAdapter() {

public void KeyPressed(KeyEvent evt){

if ( ((evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_F4)) )

{

System.exit(0);

}

}

});

First_knighta at 2007-7-12 20:33:16 > top of Java-index,Java Essentials,New To Java...
# 2

KeyAdapter provides empty methods to satisfy the interface.

override the method/s you want, or create new one/s (as in your case)

public void keyPressed(KeyEvent evt){

^

public void KeyPressed(KeyEvent evt){

^

Michael_Dunna at 2007-7-12 20:33:16 > top of Java-index,Java Essentials,New To Java...
# 3

> is there is an error in that code?

It looks ok to me, but your code formatting for the forum is atrocious. If your editor uses tabs, change it to use spaces. Four spaces ought to be plenty for each indent. Now I always thought that alt-F4 defaults to program exit though I could be wrong. This seems to work in my mini app:

public void keyPressed(KeyEvent evt)

{

if (((evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_F4)))

{

System.exit(0);

}

else if (((evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_F11)))

{

JOptionPane.showMessageDialog(null, "foo!");

}

}

petes1234a at 2007-7-12 20:33:16 > top of Java-index,Java Essentials,New To Java...