import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class KeyDemo extends KeyAdapter implements ActionListener{
JFrame f=null;
JLabel label=null;
JTextField tField=null;
String keyString="";
private void doShutDownWork()
{
Runtime.getRuntime().addShutdownHook(new Thread()
{ public void run()
{
try {
FileWriter fw = new FileWriter("d:\\t.log");
System.out.println("Im going to end");
fw.write("the application ended! " + (new Date()).toString());
fw.close();
}
catch (IOException ex)
{
System.out.println("Wrong!");
} }
});
}
public KeyDemo(){
doShutDownWork();
f=new JFrame("KeyEventDemo");
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(3,1));
label=new JLabel();
tField=new JTextField();
tField.requestFocus();
tField.addKeyListener(this);
JButton b=new JButton("清除");
b.addActionListener(this);
contentPane.add(label);
contentPane.add(tField);
contentPane.add(b);
f.pack();
f.show();
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
keyString="";
label.setText("");
tField.setText("");
tField.requestFocus();
}
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();
if (c=='o'){
JFrame newF=new JFrame("新窗口");
newF.setSize(200,200);
newF.show();
}
keyString=keyString+c;
label.setText(keyString);
}
public static void main(String[] args){
new KeyDemo();
}
}
java有没有类似c++的钩子?java只有一个jvm结束的hook,我想要一个能在后台纪录我电脑键盘的动作的程序,哪位高手愿意赐教,小妹先行谢过!
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class KeyDemo extends KeyAdapter implements ActionListener{
JFrame f=null;
JLabel label=null;
JTextField tField=null;
String keyString="";
private void doShutDownWork()
{
Runtime.getRuntime().addShutdownHook(new Thread()
{ public void run()
{
try {
FileWriter fw = new FileWriter("d:\\t.log");
System.out.println("Im going to end");
fw.write("the application ended! " + (new Date()).toString());
fw.close();
}
catch (IOException ex)
{
System.out.println("Wrong!");
} }
});
}
public KeyDemo(){
doShutDownWork();
f=new JFrame("KeyEventDemo");
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(3,1));
label=new JLabel();
tField=new JTextField();
tField.requestFocus();
tField.addKeyListener(this);
JButton b=new JButton("清除");
b.addActionListener(this);
contentPane.add(label);
contentPane.add(tField);
contentPane.add(b);
f.pack();
f.show();
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
keyString="";
label.setText("");
tField.setText("");
tField.requestFocus();
}
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();
if (c=='o'){
JFrame newF=new JFrame("新窗口");
newF.setSize(200,200);
newF.show();
}
keyString=keyString+c;
label.setText(keyString);
}
public static void main(String[] args){
new KeyDemo();
}
}
java有没有类似c++的钩子?java只有一个jvm结束的hook,我想要一个能在后台纪录我电脑键盘的动作的程序,哪位高手愿意赐教,小妹先行谢过!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货