Java 我如何将计时器连接到该设备?

Java 我如何将计时器连接到该设备?,java,Java,我正在尝试将一个2秒(2000毫秒)的计时器连接到该灯光,以便它自动前进到下一个颜色。我一直在阅读java文档,不知道如何使用它 import java.awt.event.*; import javax.swing.*; import java.awt.*; public class Lab4Frame extends JFrame { Lab4Frame(){ this.setLayout(new BorderLayout()); setTit

我正在尝试将一个2秒(2000毫秒)的计时器连接到该灯光,以便它自动前进到下一个颜色。我一直在阅读java文档,不知道如何使用它

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;



public class Lab4Frame extends JFrame {

    Lab4Frame(){
        this.setLayout(new BorderLayout());
        setTitle("Lab 4 - Application #1");
        Lab4Panel p = new Lab4Panel();
        Lab4RadioButtonPanel p2 = new Lab4RadioButtonPanel(p);

        add(p, BorderLayout.CENTER);
        add(p2, BorderLayout.SOUTH);
    }

    public static void main(String[] args){

            Lab4Frame frame = new Lab4Frame();
            frame.setTitle("Lab4 Application # 1");
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(600, 600);
            frame.setVisible(true);
    }

}

class Lab4RadioButtonPanel extends JPanel {
    Lab4Panel canvas;
    //Lab4RadioButtonPanel canvas2 = new Lab4RadioButtonPanel();

    public Lab4RadioButtonPanel(Lab4Panel canvas) {
    this.canvas = canvas;
        boolean red, green, yellow;
        this.setLayout(new FlowLayout());
        JRadioButton jrbRed = new JRadioButton("Red", true);
        JRadioButton jrbYellow = new JRadioButton("Yellow");
        JRadioButton jrbGreen = new JRadioButton("Green");

        this.setBorder(BorderFactory.createLineBorder(Color.black));

        ButtonGroup group = new ButtonGroup();
        group.add(jrbRed);
        group.add(jrbYellow);
        group.add(jrbGreen);


        this.add(jrbRed);
        this.add(jrbYellow);
        this.add(jrbGreen);

        jrbRed.addActionListener(new RedListener(canvas));
        jrbYellow.addActionListener(new YellowListener(canvas));
        jrbGreen.addActionListener(new GreenListener(canvas));

    }
}


class Lab4Panel extends JPanel{


    public Lab4Panel(){}



    boolean red = true;
    boolean green = false;
    boolean yellow = false;
    int radius = 5;
    int x = -1;
    int y = -1;

    public void setRed(){
        yellow = false;
        green = false;
        red = true;
    }

    public void setYellow(){
        red = false;
        green = false;
        yellow = true;
    }

    public void setGreen(){
        red = false;
        yellow = false;
        green = true;
    }

    protected void paintComponent(Graphics g){
        if (x<0 || y<0) {
            x = getWidth() / 2 - radius;
            y = getHeight() / 2 - radius;
        }
        super.paintComponent(g);
        g.drawRect(x - 10,y - 90, 40, 120);
        g.drawRect(x - 5,y - 90, 40, 120);
        g.setColor(Color.RED);
        g.drawOval(x,y - 80, 4 * radius, 4 * radius);
        g.setColor(Color.YELLOW);
        g.drawOval(x,y - 40, 4 * radius, 4 * radius);
        g.setColor(Color.GREEN);
        g.drawOval(x,y, 4 * radius, 4 * radius);


        if(red){
            g.setColor(Color.RED);
            g.fillOval(x,y - 80, 4 * radius, 4 * radius);
            repaint();
        }

        else if (yellow){
            g.setColor(Color.YELLOW);
            g.fillOval(x,y - 40, 4 * radius, 4 * radius);
            repaint();
        }

        if(green){
            g.setColor(Color.GREEN);
            g.fillOval(x,y, 4 * radius, 4 * radius);
            repaint();
        }

    }


}


class RedListener implements ActionListener{
    private Lab4Panel canvas;

    RedListener(Lab4Panel canvas) {
     this.canvas = canvas;
    }

    public void actionPerformed(ActionEvent e){
        canvas.setRed();
    }
}

class YellowListener implements ActionListener{
    private Lab4Panel canvas;

    YellowListener(Lab4Panel canvas) {
     this.canvas = canvas;
    }

    public void actionPerformed(ActionEvent e){
        canvas.setYellow();
    }
}

class GreenListener implements ActionListener{
    //private Lab4RadioButtonPanel canvas;
    private Lab4Panel canvas;

    GreenListener(Lab4Panel canvas) {
     this.canvas = canvas;
    }

    public void actionPerformed(ActionEvent e){
        canvas.setGreen();
    }
}
导入java.awt.event.*;
导入javax.swing.*;
导入java.awt.*;
公共类Lab4Frame扩展了JFrame{
Lab4Frame(){
此.setLayout(新的BorderLayout());
setTitle(“实验4-应用程序1”);
Lab4Panel p=新的Lab4Panel();
Lab4RadioButtonPanel p2=新的Lab4RadioButtonPanel(p);
添加(p,BorderLayout.CENTER);
添加(p2,南部边界布局);
}
公共静态void main(字符串[]args){
Lab4Frame=新的Lab4Frame();
frame.setTitle(“Lab4应用程序#1”);
frame.setLocationRelativeTo(空);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置尺寸(600600);
frame.setVisible(true);
}
}
类Lab4RadioButtonPanel扩展了JPanel{
Lab4平板帆布;
//Lab4RadioButtonPanel canvas2=新的Lab4RadioButtonPanel();
公共Lab4RadioButtonPanel(Lab4Panel画布){
this.canvas=画布;
布尔红、绿、黄;
this.setLayout(新的FlowLayout());
JRadioButton jrreded=新的JRadioButton(“红色”,真);
JRadioButton jrbYellow=新的JRadioButton(“黄色”);
JRadioButton jrbGreen=新的JRadioButton(“绿色”);
此.setboorder(BorderFactory.createLineBorder(Color.black));
ButtonGroup=新建ButtonGroup();
添加组(jrreded);
group.add(jrbYellow);
添加(jrbGreen);
此.add(jrred);
this.add(jrbYellow);
添加(jrbGreen);
addActionListener(新的RedListener(画布));
addActionListener(新的YellowListener(画布));
jrbGreen.addActionListener(新的GreenListener(画布));
}
}
类Lab4Panel扩展了JPanel{
公共Lab4Panel(){}
布尔红=真;
布尔绿色=假;
布尔黄=假;
int半径=5;
int x=-1;
int y=-1;
公共无效设置(){
黄色=假;
绿色=假;
红色=真;
}
公共空间设置黄色(){
红色=假;
绿色=假;
黄色=正确;
}
公共空间设置绿色(){
红色=假;
黄色=假;
绿色=真;
}
受保护组件(图形g){

如果(XY您可能想将帖子中的代码删减到相关部分。注意:您在上面发布的代码中没有计时器代码。如果您不向我们展示您的尝试,我们如何帮助您?再次,您阅读了吗?再次,是什么让您感到困惑?我阅读了几个网站的swing timer信息,这些信息都没有意义。我是hoping有人可以把我发送到一个较低端的网页。@user512915:再说一遍,有什么没有意义?如果你不让我们,我们就帮不了你。我上面链接的教程非常基本,但也非常完整。它甚至有供你编译和修改的示例代码,我怀疑你会找到比这更好的。是的,那个网站是我需要的这是一个原始作者的回答,没有说明如何解决他的问题。没有提供足够的代码来演示它如何与原始代码片段相匹配。这是对一个问题的断章取义的回答,最初引发了一些有意义信息的查询。
 class Lab4Panel extends JPanel{ 

 public Lab4Panel(){

 Timer timer = new Timer(2000, new TimerListener());
 timer.start();

 }