このコードのリファクタリングを手伝ってもらえますか:
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==39)
{
//Right arrow key code
}
else if (e.getKeyCode()==37)
{
//Left arrow key code
}
repaint();
}
上/下矢印キーを確認する方法についても言及してください。ありがとう!
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch( keyCode ) {
case KeyEvent.VK_UP:
// handle up
break;
case KeyEvent.VK_DOWN:
// handle down
break;
case KeyEvent.VK_LEFT:
// handle left
break;
case KeyEvent.VK_RIGHT :
// handle right
break;
}
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT ) {
//Right arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_LEFT ) {
//Left arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_UP ) {
//Up arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_DOWN ) {
//Down arrow key code
}
repaint();
}
KeyEventコードはすべてAPIの一部です。 http://docs.Oracle.com/javase/7/docs/api/Java/awt/event/KeyEvent.html
答えを完成させるだけです(KeyEventを使用する方法があります)が、上矢印は38、下矢印は40です。
else if (e.getKeyCode()==38)
{
//Up arrow key code
}
else if (e.getKeyCode()==40)
{
//down arrow key code
}
これをパネル(作業中のウィンドウ)に添付したい場合。
次に、IKeyListenerインターフェイスから拡張する内部クラスを作成し、そのメソッドをクラスに追加する必要があります。
次に、this.addKeyListener(new subclass());によってそのクラスをパネルにアタッチします。
実際のコードではなく、KeyEvent.VK_UPのようなものを使用する必要があります。
どのようにリファクタリングしたいですか?リファクタリングの目標は何ですか?