package com.test01;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.io.Serializable;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PaintTestFrame extends JFrame implements Serializable {
private static final long serialVersionUID = 1L;
private Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
private PaintTestPanel ptp ;
public PaintTestFrame() {
this.setSize(d.width/2,d.height/2);
this.setLocationRelativeTo(null);
ptp = new PaintTestPanel();
this.getContentPane().setBackground(Color.BLACK);
this.setVisible(true);
this.add(ptp);//注意这里的这句要放在显示框架之后,否则 paint方法会被调用2次,这可能是容器内部机制问题吧
}
class PaintTestPanel extends JPanel implements Serializable{
private static final long serialVersionUID = 1L;
public PaintTestPanel() {
super();
this.setBackground(null);
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.WHITE);
g.setFont(new Font("",Font.BOLD,50));
g.drawString("老龚", 200, 200);
System.out.println("执行");
}
}
public static void main(String[] args) {
new PaintTestFrame();
}
}
java swing g.paint 被调2次 解决方法
最新推荐文章于 2022-08-31 23:39:52 发布