그래, 나는 자바를 처음 접했어. 내 문제는 이것입니다 :값을 변경 한 키를 눌렀을 때 어떻게 이벤트를 발생시킬 수 있습니까?
"컨트롤"이라는 클래스가 있습니다. 이 클래스는 KeyListener를 구현해, 키 코드를 읽어 낼 수가 있습니다. "디스플레이"라는 또 다른 클래스가 있습니다. 키를 누르면 Control 인쇄를 콘솔에 텍스트로 만들 수 있습니다. 그러나 이제 키를 누르면 컨트롤 클래스에서 int X를 변경하고이 값을 Display의 메서드에 보내려고합니다. 디스플레이에는 값으로 무엇인가를해야하는 메소드가 있습니다.
여기에 새로운 코드입니다 :
CONTROL.JAVA
제어 모든 KeyListener를 구현하는 공용 클래스 {
private Display display;
private int x = 0;
public Control(){
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_D){
x++;
System.out.println("D");
}
else if (e.getKeyCode() == KeyEvent.VK_A){
x--;
System.out.println("A");
}
display.DoSomethingWithX(x);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
DISPLAY.JAVA
공용 클래스 디스플레이 {
JPanel의 확장public Display(){
JFrame main = new JFrame("Unnamed");
main.add(this);
main.setSize(xWidth, yHeight);
main.setVisible(true);
main.setDefaultCloseOperation(main.EXIT_ON_CLOSE);
main.addKeyListener(new Control());
main.setFocusable(true);
}
public void DoSomethingWithX(int x){
Graphics g;
g.setColor(c); //Let's assume c is already defined somewhere.
g.drawLine(x, 25, x, 25); //Don't mind the y value. It is least important.
}
public static void main(String[] args){
Display display = new Display();
}
,
}
1 같이 할 수 있도록 더 나은 도움이 필요한 경우)
Display
객체에Control
참조가 필요). 2) 클래스에 대한 일반적인 [Java 명명 규칙 (Java 命名 規則)] (http://java.sun.com/docs/books/books/books/jls/second_edition/html/names.doc.html#73307) (특히 이름에 사용 된 사례)을 배우십시오. , 메소드 및 속성 이름 및 일관되게 사용하십시오. –