Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在每秒钟内改变圆的颜色 import java.applet.*; 导入java.awt.*;//图形、形状 导入java.awt.geom.*//图形2d /* */ 公共类Oval1扩展小程序实现可运行{ 圆形; 颜色c; 公共void init(){ 圆圈=新的椭圆2d.浮动(90100,90,90); 重新油漆(); 螺纹th=新螺纹(此); th.start(); } 公开募捐{ 试一试{ while(true){ 系统输出打印项次(1); c=颜色。青色; 重新油漆(); 睡眠(1000); 系统输出打印ln(2); c=颜色。灰色; 重新油漆(); } }捕获(例外情况除外){ 例如printStackTrace(); } } 公共空间更新(图g){ 油漆(g); } 公共空间涂料(图g){ 图形2d=(图形2d)g; d、 setColor(c); d、 填充(圆圈); } }_Java_Multithreading_Applet_Shapes - Fatal编程技术网

如何在每秒钟内改变圆的颜色 import java.applet.*; 导入java.awt.*;//图形、形状 导入java.awt.geom.*//图形2d /* */ 公共类Oval1扩展小程序实现可运行{ 圆形; 颜色c; 公共void init(){ 圆圈=新的椭圆2d.浮动(90100,90,90); 重新油漆(); 螺纹th=新螺纹(此); th.start(); } 公开募捐{ 试一试{ while(true){ 系统输出打印项次(1); c=颜色。青色; 重新油漆(); 睡眠(1000); 系统输出打印ln(2); c=颜色。灰色; 重新油漆(); } }捕获(例外情况除外){ 例如printStackTrace(); } } 公共空间更新(图g){ 油漆(g); } 公共空间涂料(图g){ 图形2d=(图形2d)g; d、 setColor(c); d、 填充(圆圈); } }

如何在每秒钟内改变圆的颜色 import java.applet.*; 导入java.awt.*;//图形、形状 导入java.awt.geom.*//图形2d /* */ 公共类Oval1扩展小程序实现可运行{ 圆形; 颜色c; 公共void init(){ 圆圈=新的椭圆2d.浮动(90100,90,90); 重新油漆(); 螺纹th=新螺纹(此); th.start(); } 公开募捐{ 试一试{ while(true){ 系统输出打印项次(1); c=颜色。青色; 重新油漆(); 睡眠(1000); 系统输出打印ln(2); c=颜色。灰色; 重新油漆(); } }捕获(例外情况除外){ 例如printStackTrace(); } } 公共空间更新(图g){ 油漆(g); } 公共空间涂料(图g){ 图形2d=(图形2d)g; d、 setColor(c); d、 填充(圆圈); } },java,multithreading,applet,shapes,Java,Multithreading,Applet,Shapes,我正在尝试创建一个小程序,它的中间有一个填充的圆圈&每秒钟更改圆圈的颜色,这意味着我想显示一个闪烁的圆圈 我想每秒钟改变一次圆圈的颜色 为此,我使用Shape类和Thread,但它仍然不起作用 我已经尝试通过覆盖更新方法来使用paint(g) 这也不会影响您可以使用Java定时器代替Thread.sleep()。例如,使用计时器。Thread.sleep()阻止小程序的绘制方法。在第二次重新绘制()后添加Thread.sleep(1000) 试试这个 只需要把线程。睡眠(1000)在第二次重新绘

我正在尝试创建一个小程序,它的中间有一个填充的圆圈&每秒钟更改圆圈的颜色,这意味着我想显示一个闪烁的圆圈

我想每秒钟改变一次圆圈的颜色

为此,我使用Shape类和Thread,但它仍然不起作用

我已经尝试通过覆盖更新方法来使用
paint(g)


这也不会影响

您可以使用Java定时器代替Thread.sleep()。例如,使用计时器。Thread.sleep()阻止小程序的绘制方法。

在第二次重新绘制()后添加Thread.sleep(1000)

试试这个

只需要把线程。睡眠(1000)在第二次重新绘制()之后,当前在第二次重新绘制之后立即调用第一次重新绘制,因此它在第二次重新绘制()上覆盖绘制

        while(true) {

            System.out.println(1);
            c = Color.cyan;
            repaint();
            Thread.sleep(1000);
            System.out.println(2);
            c = Color.gray;
            repaint();
            Thread.sleep(1000);
        }
import java.applet.*;
导入java.awt.*;//图形、形状
导入java.awt.geom.*//图形2d
/*
*/
公共类Oval1扩展小程序实现可运行{
圆形;
颜色c;
公共void init(){
圆圈=新的椭圆2d.浮动(90100,90,90);
重新油漆();
螺纹th=新螺纹(此);
th.start();
}
公开募捐{
试一试{
while(true){
系统输出打印项次(1);
c=颜色。青色;
重新油漆();
睡眠(1000);
系统输出打印ln(2);
c=颜色。灰色;
重新油漆();
睡眠(1000);
}
}捕获(例外情况除外){
例如printStackTrace();
}
}
公共空间更新(图g){
油漆(g);
}
公共空间涂料(图g){
图形2d=(图形2d)g;
d、 setColor(c);
d、 填充(圆圈);
}
}

您是否获得System.out.println输出?是的,在控制台中,我每秒都会得到两条println语句……c会改变颜色,但您看不到它。添加线程。睡眠(1000);到重新绘制()后while块的末尾;你会得到你想要的。我必须使用线程,因为这是我的学校作业,由我的教授提供的定义…你能给出我使用定时器类的例子吗,因为我不知道swing的定时器类的用法??你可以看看,或者
        while(true) {

            System.out.println(1);
            c = Color.cyan;
            repaint();
            Thread.sleep(1000);
            System.out.println(2);
            c = Color.gray;
            repaint();
            Thread.sleep(1000);
        }
import java.applet.*;
import java.awt.*;      // Graphics, Shape
import java.awt.geom.*; //Graphics2D
/*
<applet code = Oval1.class height=300 width=300 >
</applet>
*/
public class Oval1 extends Applet implements Runnable {
    Shape circle;
    Color c;
    public void init() {
        circle = new Ellipse2D.Float(90,100, 90, 90);
        repaint();
        Thread th = new Thread(this);
        th.start();
    }
    public void run() {
        try {
            while(true) {
                System.out.println(1);
                c = Color.cyan;
                repaint();
                Thread.sleep(1000);
                System.out.println(2);
                c = Color.gray;
                repaint();
                Thread.sleep(1000); 
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    public void update(Graphics g) {
        paint(g);
    }
    public void paint(Graphics g) {
        Graphics2D d = (Graphics2D) g;
        d.setColor(c);
        d.fill(circle);
    }
}