当我按下特定键时,我想更新另一个类中的int
值,并根据此更新的JPanel
重新显示int
。
以下是我使用key_event
:
frame.addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_W){
dP.status = 1;
w.x = w.x; //pos.xC(pos.maxSize(frame));
w.y = w.Y(w.y, -w.val);
if ( w.y < 0) {
w.y = 0;
}
frame.validate();
dP.repaint();
System.out.println("w.y: "+w.y);
}
});
这是我的课程,int
应该更新:
public class Objects {
public int x = 10;
public int y = 10;
public int height = 10;
public int width = 10;
public int val = 5;
public void dW(Graphics stift){
stift.setColor(Color.RED);
stift.fillRect(x, y, width, height);
}
}
这是我的JPanel
课程:
public class DisplayPanel extends JPanel {
public Objects w = new Objects();
public int status = 0;
public void setUp(){
this.setBackground(Color.WHITE);
}
@Override
protected void paintComponent(Graphics stift){
super.paintComponent(stift);
if (status == 0){
stift.setColor(Color.RED);
stift.drawLine(200, 200, 400, 200);
stift.drawLine(200, 400, 300, 500);
stift.setColor(Color.GREEN);
stift.drawLine(200, 200, 2000, 200);
stift.fillRect(w.x, w.y, w.width, w.height);
}
while (status == 1){
w.dW(stift);
break;
}
}
}
第一次按下键时,JPanel会更新,w.x和w.y的值不会更新,它们仍然是精确的10.如何更改?
(PS:我知道为key_events实现switch case break语句会更好)。