为什么我的jFrame只在我调整窗口大小后才更新?

编程入门 行业动态 更新时间:2024-10-24 16:22:59
本文介绍了为什么我的jFrame只在我调整窗口大小后才更新?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我了解当你添加/删除一个组件时,你需要 revalidate()然后 repaint()。但是,我正在改变多边形的状态。最初,显示图像,但是当我按下左右键时,图像不会移动。如果我移动窗口,gui会更新。我按键时为什么不更新?

I understand that when you add/remove a component, you need to revalidate() and then repaint(). However, I am changing the state of my polygon. Initially, the image is shown, however when I press the left and right keys, the image does not move. If I move the window, the gui is updated. Why doesn't it update as I press the keys?

public class Terminos { private LeftTermin ter; private String[] commands = { "UP", "DOWN", "RIGHT", "LEFT" }; public Terminos() { initComp(); } public void initComp() { JFrame jFrame = new JFrame(); jFrame.setSize(500, 500); Component pane = new myPanel(); jFrame.add(pane); ter = new LeftTermin(200, 200); jFrame.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_RIGHT) { System.out.println("r"); ter.moveR(); // Right arrow key code } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { System.out.println("l"); ter.moveL(); // Left arrow key code } else if (e.getKeyCode() == KeyEvent.VK_UP) { System.out.println("u"); // Up arrow key code } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { // Down arrow key code System.out.println("d"); } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } }); jFrame.revalidate(); jFrame.setVisible(true); } class myPanel extends JPanel { @Override public void paintComponent(Graphics canvas) { super.paintComponent(canvas); ter.draw(canvas); } } }

推荐答案

在监听器中 c> ter.moveR(); moveL()之后调用 repaint(); 。

另外我建议使用 KeyBindings 而不是 KeyListener

Additionally I would recommentd to use KeyBindings rather than KeyListener

更多推荐

为什么我的jFrame只在我调整窗口大小后才更新?

本文发布于:2023-10-23 00:12:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1519160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:在我   后才   大小   窗口   jFrame

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!