나는 자바 페인트를 배우기를 원하고 그래서 어떻게 자바 페인트를하고 다시 칠하는지 이해할 수있는 코드를 만들었습니다. 여기에 2 개의 코드 샘플이 있는데 그 차이점은 무엇입니까? 왜 일을 다시 칠하지 않습니까?Java repaint()는 어떻게 작동합니까?
첫 번째 코드 샘플 (작동)
package com.oguz;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PaintTest3 extends JFrame{
JPanel panel1;
int i = 1;
public PaintTest3() {
panel1 = new JPanel();
JButton btn = new JButton("Button");
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
i++;
Graphics g = panel1.getGraphics();
g.setColor(Color.BLACK);
g.drawLine(10, 10, i * 5, 10);
}
});
add(panel1);
add(btn, BorderLayout.NORTH);
}
public static void main(String args[]){
PaintTest3 pt = new PaintTest3();
pt.setDefaultCloseOperation(EXIT_ON_CLOSE);
pt.setSize(600, 500);
pt.setVisible(true);
}
}
차이점을 먼저 알려 주시면 문제의 중요성을 알려 드리겠습니다. –