Ответ Хастуркуна с использованием опции xxd -i превосходный. Если вы хотите включить процесс преобразования (текст -> файл с шестнадцатеричным включением) непосредственно в свою сборку, то инструмент / библиотека hexdump.c недавно добавила возможность, аналогичную опции -i xxd (она не дает вам полный заголовок - вам нужно для предоставления определения массива char, но это имеет преимущество, позволяя вам выбрать имя массива char):
http://25thandclement.com/~william/projects/hexdump.c .html
Это лицензия намного более «стандартная», чем xxd, и очень либеральная - пример ее использования для вставки файла инициализации в программу можно увидеть в CMakeLists.txt и schem.c здесь:
https://github.com/starseeker/tinyscheme-cmake
Есть плюсы и минусы как для включения сгенерированных файлы в исходных деревьях и связанные с ними утилиты - как справиться с этим будет зависеть от конкретных целей и потребностей вашего проекта. hexdump.c открывает опцию связывания для этого приложения.
http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html Проверьте этот учебник
Если это приложение на основе пользовательского интерфейса, Мне также нужно знать, что мне нужно добавить в мой код, чтобы моя программа ожидала около 700 миллисекунд для ввода ключа, прежде чем перейти к другому методу «вы можете использовать класс GlassPane или Timer для выполнения этого требования.
Для ключевого события:
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = -1;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 1;
}
if (key == KeyEvent.VK_UP) {
dy = -1;
}
if (key == KeyEvent.VK_DOWN) {
dy = 1;
}
}
проверьте этот игровой пример http://zetcode.com/tutorials/javagamestutorial/movingsprites/
В дополнение к использованию KeyListener (как показывают ответы других), иногда вам необходимо убедиться, что JComponent, который вы используете, является Focusable. Это можно установить, добавив это в свой компонент (если вы являетесь подклассом):
@Override
public void setFocusable(boolean b) {
super.setFocusable(b);
}
И добавив это в свой конструктор:
setFocusable(true);
Или, если вы вызов функции из родительского класса / контейнера:
JComponent childComponent = new JComponent();
childComponent.setFocusable(true);
И затем выполнение всех материалов KeyListener, упомянутых другими.
Здесь SSCCE ,
package experiment;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class KeyListenerTester extends JFrame implements KeyListener {
JLabel label;
public KeyListenerTester(String s) {
super(s);
JPanel p = new JPanel();
label = new JLabel("Key Listener!");
p.add(label);
add(p);
addKeyListener(this);
setSize(200, 100);
setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("Right key typed");
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("Left key typed");
}
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("Right key pressed");
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("Left key pressed");
}
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("Right key Released");
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("Left key Released");
}
}
public static void main(String[] args) {
new KeyListenerTester("Key Listener Tester");
}
}
Дополнительно читайте по этим ссылкам: Как написать прослушиватель клавиш и ] Как использовать привязки клавиш
Класс, который реализует интерфейс KeyListener
, становится нашим пользовательским прослушивателем ключевых событий. Этот слушатель не может напрямую прослушивать ключевые события. Он может только прослушивать ключевые события через промежуточные объекты, такие как JFrame
. Итак,
class MyListener implements KeyListener{
// override all the methods of KeyListener interface.
}
MyKeyListener
готов прослушать ключевые события. Но он не может этого сделать напрямую. JFrame
, через который MyListener
может прослушивать ключевые события. для этого вам нужно добавить объект MyListener
к объекту JFrame
. JFrame f=new JFrame();
f.addKeyListener(new MyKeyListener);