我遇到一个问题,当我的编码,当我打电话重绘的任何地方,它不更新的图像,但该程序仍继续运行:的Java重绘不更新
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.ImageObserver;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class mainMenu extends JPanel implements MouseListener{
Graphics g;
Image playButton = Toolkit.getDefaultToolkit().getImage("game sprites/play_button.png");
private int part = 0;
public static void main(String[] a) {
mainMenu mm = new mainMenu();
mm.makeJFrame();
}
public void makeJFrame(){
JFrame f = new JFrame();
f.setSize(1000, 600);
f.add(new mainMenu());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.addMouseListener(this);
f.setTitle("MAIN MENU");
}
public void paintComponent(Graphics g) {
if(part == 0)
System.out.println("0");
g.drawImage(playButton, 330, 200, 294, 102, this);
if(part == 1)
{
System.out.println("1");
g.setColor(Color.RED);
g.fillRect(0, 0, 40, 40);
}
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(part == 0)
{
if(x > 330 && x < 624 && y > 232 && y < 334)
{
System.out.println("a");
part = 1;
repaint();
}
}
}
public void mouseReleased(MouseEvent e) {}
}
我测试过很多次,并且问题在于重绘,该程序起作用,但图像在不应该时保持不变。它打印出来: a(当我点击按钮时) 并且不会再次打印出“a”,即使我点击了按钮,它不应该将该部分设置为1
缺少{}周围的人的身体你的if语句在paintComponent – 2014-12-08 02:05:07
谢谢,修复这第一个 – MLShax 2014-12-08 03:43:34