我了解,当您添加/删除组件时,需要revalidate()
然后单击repaint()
。但是,我正在更改多边形的状态。最初显示图像,但是当我按左右键时,图像不会移动。如果我移动窗口,则gui将更新。为什么当我按下按键时它没有更新?
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);
}
}
}
在听众repaint();
之后打电话ter.moveR();moveL()
。
另外,我建议使用KeyBindings而不是KeyListener
我刚开始使用JavaFX,问题是,在更改场景后,并非所有组件都被显示。例如,我有一个GridPane,它将被添加到边框中心,一个标签将被添加到边框底部。但是在我更改场景后,这个标签不会显示,只有在调整大小后才有效。 以下是一个简单的最小、完整和可验证的示例:
窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re
#include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j
问题内容: 我在一个框架中有2个JPanels。第一个面板包含Java项目,例如按钮等。出现了我添加的两个按钮,但是在我调整窗口大小之后才出现JSpinner。我想这与我要添加的其他项目也会发生。我该如何解决这个问题? 问题答案: 您需要 在 调用JFrame 之后 向GUI添加组件,这是向后的,因为在添加任何东西之前渲染GUI都是有意义的,因此以后添加的所有东西都需要重新粉刷才显示。 取而代之的
我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:
问题内容: 我有以下JQuery代码: 唯一的问题是,这仅在首次加载浏览器时有效,我是否还希望在调整窗口大小时进行检查? 有任何想法吗? 问题答案: 这是一个使用jQuery,javascript和css处理调整大小事件的示例。 (如果您只是通过调整大小来设置样式(媒体查询),最好的方法是CSS) [ CSS javascript jQuery 如何停止调整大小的代码执行如此频繁! 这是绑定到调整