페인트 칠 사용법을 완전히 이해하지 못하는 것 같습니다. 몇 번이나 다른 코드에서 제대로 작동하는 동안 일부 코드에서 다시 칠하지 않는 이유를 알 수 없습니다. 메신저 그래프 그림 클래스를 만들려고합니다. 지금은 y = x입니다. 그러나 그것은 작동하지 않을 것이다. paintcomponent는 한 번 호출 된 것처럼 보였다. 그게 왜?Repaint() 다시 칠하지 않음
public class Graph extends JPanel
{
private int oldX=0,oldY=0,newX=1,newY=1;
public Graph()
{
invokeInitWindow();
}
public void invokeInitWindow()
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
init();
}
});
}
public void init()
{
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(300,300));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.pack();
frame.setVisible(true);
}
public void move()
{
newY=++newX;
oldX=oldY=newX+1;
}
public void runGraph()
{
while(newX < 500)
{
move();
repaint();
}
}
public static void main(String[] args)
{
Graph g = new Graph();
g.runGraph();
}
public void paintComponent(Graphics g)
{
g.setColor(Color.BLACK);
g.drawLine(oldX, oldY, newX, newY);
}
}
그것은 있는지 아니었지만, while-loop' 프레임이 너무 빨리 실행되기 전에 프레임이 화면에 표시되기 전에 완료됩니다. – MadProgrammer