import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;import javax.swing.JPanel;import org.omg.CORBA.PUBLIC_MEMBER;public class Circle extends JPanel{
private int value; public Circle(){
}
public Circle(int value){
this.value = value;
}
public int getValue(){
return value;
}
public void setValue(int value){
this.value = value;
//System.out.print(value);
repaint();
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
int clockRadius = (int)(Math.min(getWidth(), getHeight())*0.8*0.5);
int xCenter = getWidth()/2;
int yCenter = getHeight()/2;
g.setColor(Color.RED);
g.drawOval(xCenter-clockRadius, yCenter-clockRadius, 2*clockRadius, 2*clockRadius);
//System.out.print(value);
int line1 = (int)(clockRadius);
int line1X = (int) (xCenter-clockRadius*Math.cos(value*(2*Math.PI/60)));
int line1Y = yCenter+value;
g.drawLine(xCenter, yCenter, line1X, line1Y);
}
public Dimension getPreferredSize() {
return new Dimension(100,100);
}
}
这是我写的一段画出线条的类代码,经过调试后发现当我在不断改变value值后,通过system.out.print在setValue()函数中显示value的值是在不断变化的,可是在protected void paintComponent(Graphics g)中打印的value值却一直是0没有变化,所以我的图像根本不会有变化一直是静止的,这是为什么呢
解决方案 »
- java Socket网络编程的几个概念性问题
- 一个关于java数组交换值的问题!谁能帮帮我
- 这段代码错在哪?为什么会出现异常
- 什么时候该用内隐类?
- LRESULT CExample1Dlg::OnServerMessage(WPARAM wParam, LPARAM lParam)
- 请问actionlistener监听哪些事件?
- 利用javamail如何获取邮件正文?还有为什么我的邮件主题和发件人有时会乱码呢?
- 急救,软件项目就要实施了,可开发方案还没确定,高手给点指导吧!!!
- 为什么加入package语句后,程序就运行不了?
- java swing的问题 高手们都进来看看啊
- 文件复制的一个错误
- 学完马士兵老师的j2se视频后
JFrame app = new JFrame("测试");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(400, 500);
Circle panel = new Circle(20);
app.add(panel);
app.setVisible(true);
for(int i = 0;i<100;i++)
{
Thread.sleep(100);
panel.setValue(20 + i*5);
}
}测试了下,无问题