返回信息流代码:
附件(1.2KB) Octagon.java
在程序中,我扩展JPanel自定义了一个OctagonPanel,并覆盖其paintComponent()方法
用于绘制一个正八边形,并添加了一些显示信息。
我要问的是为什么信息会打印两遍呢?
import java.awt.*;
import javax.swing.*;
public class Octagon extends JFrame{
public Octagon(){
add(new OctagonPanel());
}
public static void main(String[] args){
Octagon frame = new Octagon();
frame.setTitle("Octagon");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class OctagonPanel extends JPanel{
protected void paintComponent(Graphics g){
super.paintComponent(g);
//Get the center point and radius
int xCenter = getSize().width / 2;
int yCenter = getSize().height / 2;
int radius = (Math.min(xCenter, yCenter) - 20);
System.out.println("xCenter = " + xCenter + ", yCenter = " + yCenter +
", radius = " + radius);
Polygon octagon = new Polygon();
for(int i = 0; i < 8; i++){
double angle = Math.PI * i * 45.0 / 180;
int x = (int)(xCenter - radius * Math.cos(angle));
int y = (int)(yCenter - radius * Math.sin(angle));
octagon.addPoint(x, y);
System.out.println("x = " + x + ", y = " + y);
}
// Draw a octagon
g.drawPolygon(octagon);
}
}
这是一条镜像帖。来源:北邮人论坛 / java / #12391同步于 2009/11/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[求助]为什么信息会打印两遍呢?(具体看代码)
keroro
2009/11/24镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
我这里IDE情况下两遍是:点击别的窗体,再把绘图窗体调到最前方,或者最小化后再还原
命令行:只有最小化再还原才会打印两遍(当然如果缩放是一定会打印的)
要不然就是一遍