私はJavaペイントと再ペイント作業を理解するためにいくつかのコードを作成したので、私はJavaペイントを学びたいと思います。ここに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);
}
}
どのような違いが最初にあるのかを教えてください。それから、重要な理由を教えてください。 –