이미지를 선택해 키보드로 움직일수 있는 프로그램을 만들려 합니다. 수정부탁드립니다 감사합니다ㅠ
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FurnitureArrangement extends JFrame implements ActionListener {
JLabel label = new JLabel();
Component icon;
public FurnitureArrangement(){
setTitle("FurnitureArrangement");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
String[] Furniture={"침대","책상","식탁"};
JComboBox FurnitureList = new JComboBox(Furniture);
FurnitureList.setSelectedIndex(0);
FurnitureList.addActionListener(this);
label.setHorizontalAlignment(JLabel.CENTER);
changePicture(Furniture[FurnitureList.getSelectedIndex()]);
add(FurnitureList, BorderLayout.PAGE_START);
add(label, BorderLayout.PAGE_END);
label.setLocation(150, 150);
label.addKeyListener (new MyKeyListener());
label.setSize(40,50);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
JComboBox cb = (JComboBox) e.getSource();
String name = (String) cb.getSelectedItem();
changePicture(name);
}
protected void changePicture(String name){
ImageIcon icon=new ImageIcon(name + ".png");
label.setIcon(icon);
}
class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e){
int keyCode = e.getKeyCode();
switch(keyCode){
case KeyEvent.VK_UP:
icon.setLocation(icon.getX(), icon.getY()-10);
break;
case KeyEvent.VK_DOWN:
icon.setLocation(icon.getX(), icon.getY()+10);
break;
case KeyEvent.VK_LEFT:
icon.setLocation(icon.getX()-10, icon.getY());
break;
case KeyEvent.VK_RIGHT:
icon.setLocation(icon.getX()+10, icon.getY());
break;
}
}
}
public static void main(String[] args) {
new FurnitureArrangement();
}
}
댓글 0