我設法獲得用戶鍵擊並將其存儲在一個字符類型的arrayList中。我唯一的問題是,當用戶在JTextArea之外鍵入內容時,我無法再獲取鍵擊。那麼即使用戶使用微軟的工作不是JTextArea,也有辦法獲得按鍵。如何獲取用戶的擊鍵?
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.ArrayList;
public class Sadasd extends JFrame {
private JTextField userText;
private JTextArea chatWindow;
ArrayList<Character> stringList;
public Sadasd(String host){
super(" mofo!");
stringList = new ArrayList<Character>();
userText = new JTextField();
userText.setEditable(false);
userText.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
userText.setText("");
}
}
);
add(userText, BorderLayout.NORTH);
chatWindow = new JTextArea();
add(new JScrollPane(chatWindow), BorderLayout.CENTER);
setSize(300,150);
setVisible(true);
chatWindow.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// System.out.println(e.getKeyChar());
stringList.add(e.getKeyChar());
System.out.println(stringList);
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
}
}
您需要使用JNA來獲取應用程序外的按鍵。 – Adam 2015-02-07 21:52:07
orite這是完美的,你可以請指導我如何去做 – johan 2015-02-07 21:54:50
這是功課嗎? JNA是不值得的麻煩,只是接受限制你的應用程序無法在你的應用程序外得到按鍵 – Adam 2015-02-07 21:56:43