gpt4 book ai didi

Java Applets-在不使用 'canvas' 的情况下创建交互式交通灯?

转载 作者:行者123 更新时间:2023-12-02 07:15:06 25 4
gpt4 key购买 nike

简单来说,我想设计一个 Java 小程序,它显示带有三个相邻按钮的交通灯。一种表示红灯,一种表示琥珀色灯,一种表示绿灯。

<小时/>

我的问题是:我不知道如何将每个按钮与右侧的椭圆形链接。所有椭圆都属于同一个图形变量 g。如果我改变颜色,所有三个都会改变。

有一个名为 canvas 的父类(super class),它可以帮助将每个对象从我的知识中分离到其自己的实体中,但我知道有一种更简单的方法。

我该怎么做?

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.applet.Applet;

public class Traffic extends Applet
implements ActionListener
{

int colourNum; //global variable which is responible for changing the light

Button bttn1 = new Button ("Stop Traffic");
Button bttn2 = new Button ("Caution");
Button bttn3 = new Button ("Proceed");

public void init ()
{
setBackground (Color.lightGray);

bttn1.addActionListener (this); // stop light
bttn2.addActionListener (this); // yellow light
bttn3.addActionListener (this); // green light

add (bttn1);
add (bttn2);
add (bttn3);
}

public void paint (Graphics g) // responsible for graphics "within" the window
{
g.setColor (Color.black);

switch (colourNum)
{
case 1:
g.setColor (Color.red);
break;
}
g.fillOval (30, 40, 20, 20); // red light
g.fillOval (30, 70, 20, 20); // yello light
g.fillOval (30, 100, 20, 20); // green light
}


public void actionPerformed (ActionEvent evt)
{
if (evt.getSource () == bttn1)
colourNum = 1;
else if (evt.getSource () == bttn2)
colourNum = 2;
else
colourNum = 3;

repaint ();
}
}

最佳答案

public void paint (Graphics g)  // responsible for graphics "within" the window
{
g.setColor (Color.black);

g.setColor(colourNum == 1? Color.red : Color.red.darker().darker());
g.fillOval (30, 40, 20, 20); // red light
g.setColor(colourNum == 2? Color.yellow : Color.yellow.darker().darker());
g.fillOval (30, 70, 20, 20); // yello light
g.setColor(colourNum == 3? Color.green : Color.green.darker().darker());
g.fillOval (30, 100, 20, 20); // green light
}

关于Java Applets-在不使用 'canvas' 的情况下创建交互式交通灯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com