Re: KeyListener
On 19 Sie, 12:47, Daniele Futtorovic <da.futt.n...@laposte.invalid>
wrote:
On 19/08/2008 09:41, Bum...@gmail.com allegedly wrote:
How add KeyListener to JFrame?
Simply I want that when I press F5 the content of JFrame refresh.
<code>
package scratch;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Scratch
{
public static void main(String[] ss)
throws Exception
{
EventQueue.invokeLater(new Runnable(){
public void run(){
final JFrame f = new JFrame("InputMa=
pTest");
final Action a = new AbstractAction(=
"UNIQUE_ACTION_NAME"){
boolean dir = true;
public void actionPerformed(Ac=
tionEvent e) {
Component c = f.getC=
ontentPane();
dir ^= (c.getBackgro=
und().equals(Color.WHITE)
=
||
c.getBackground().equals(Color.BLACK));
c.setBackground(dir ? =
c.getBackground().darker()
=
:
c.getBackground().brighter());
c.repaint();
}
};
f.setDefaultCloseOperation(JFrame.EXIT=
_ON_CLOSE);
f.setPreferredSize(new Dimension(400, =
400));
f.getRootPane().getInputMap().put(
KeyStroke.getKeyStroke(KeyEven=
t.VK_F5, 0),
a.getValue(Action.NAME)
);
f.getRootPane().getActionMap().put(
a.getValue(Action.NAME),
a
);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}}
</code>
--
DF.
If it is not requirement to use input map, try to add
KeyListener (http://java.sun.com/javase/6/docs/api/java/awt/event/
KeyListener.html)
to JFrame (http://java.sun.com/javase/6/docs/api/java/awt/
Component.html#addKeyListener(java.awt.event.KeyListener))
and handle F5 by comparison of KeyEvent.VK_F5 with key code (http://
java.sun.com/javase/6/docs/api/java/awt/event/
KeyEvent.html#getKeyCode()) from key event.
Przemek