나는 사용자 키 스트로크 (keystroke)를 얻고 그것을 type 문자의 arrayList에 저장할 수 있었다. 내가 가지고있는 유일한 문제는 사용자가 JTextArea 외부에서 뭔가를 입력 할 때 키 입력을 더 이상받을 수 없다는 것입니다. 그래서 사용자가 Microsoft를 사용하는 경우 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
완벽한 오이스 트, 어떻게 할 수 있는지 알려주세요. – johan
숙제입니까? JNA는 심각하게 문제의 가치가 없습니다, 그냥 귀하의 애플 리케이션이 귀하의 애플 리케이션 이외의 keypresses 얻을 수없는 제한을 받아들입니다 – Adam