各位程序员好!如何在初始化中访问/更改变量? JAVA
所以说实话,我不确定标题问题是否正确,你会明白为什么。 在我解释我做什么,为什么,这里是代码片段:
JPanel playerPanel = new JPanel() {
public void paint(Graphics g) {
X = 1;
Y = 1;
g.drawImage(player.getScaledInstance(player.getHeight()/2, player.getWidth()/2, Image.SCALE_DEFAULT), X, Y, null);
}
};
所以这从一个自定义类我做的,我的问题的摘要将是,你看有一个X和Y变量,我可以改变它们的值,但是这并没有改变实际程序的影响,我的第一个问题是我可以改变这个JPanel的图像的X和Y,如果是的话,我该如何“刷新”实际的JPanel/Image,使它看起来像移动?
一些注意事项:
-the X, Y are global variables
-playerPanel is inside a procedure, and a global variable
-i can access X, Y since they are global variables from outside the class
我有一个很难居然写下我的问题...希望你明白我想完成的任务。
1.覆盖'paintComponent()',而不是'paint()'2.在'paintComponent()'的开始处调用'super.paintComponent()'3.不要将x/y坐标设置为'paintComponent()'方法。 4.您可以通过调用'panel.repaint()'来强制重画面板。5.变量名称(不是最终的)应该以小写字母开头6.动画可以用[timer](https:/ /docs.oracle.com/javase/tutorial/uiswing/misc/timer.html),例如在每次运行中更改x/y的值。 –
谢谢!老实说,我正在用矩形搞乱,在我的项目中,我制作了一个图像加载类,它曾经被调用,将选择的图像加载到一个新的JPanel中(正如您可以从代码片段中看到的那样),并且此JPanel在类中,我做了x/y坐标全局,所以我可以从课堂外访问它,所以有“imageLoaded”对象,我想改变图像的坐标与“imageLoaded。X = insert_coordinate_here“我之所以这样做的原因是我可以在主框架上使用KeyListener移动面板,并制作了另一个”loadedImage(2)“ – Coldus12
,我制作了3个矩形,第一个矩形位于loadedImage的坐标处,大小相同,第二个与loadedImage2相同,第三个是两者之间的交点,直到出现交叉点,loadedImage2才“可见”,只有交集是可见的,现在一切正常,但每当我移动了它显示交叉点的loadedImage1,但是不正确,因为它始终(并且仅)显示图像的左上角,然后我发现,我必须在面板上移动图像,我是 – Coldus12