「模拟灯光JAVA」模拟灯光科目三 语音播报
今天给各位分享模拟灯光JAVA的知识,其中也会对模拟灯光科目三 语音播报进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
怎样把Java编程页面的灯光变得暗
可以修改编码的背景Window---Preferences,General---Editors---Text Editors,右侧找到Background color,取消默认,选择喜欢的颜色,推荐天蓝色,淡棕色等
如何用java来实现灯泡异常问题
模拟了一下。。设置成B1按下时B4弹起,B4按下时B1弹起,不然有的时候电源是开是关不好判定。。如果B1/B4是一个按钮就好了 = =。为方便观察,间隔时间设为0.5s。另外加了两个按钮用来控制灯泡1、2是否故障。import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class Bulb extends JFrame
{ private final int INTER_SECOND = 500; // 间隔时间 private BulbButton b1 = new BulbButton("B1");
private BulbButton b2 = new BulbButton("B2");
private BulbButton b3 = new BulbButton("B3");
private BulbButton b4 = new BulbButton("B4"); private BulbLight l1 = new BulbLight(1);
private BulbLight l2 = new BulbLight(2); private JButton bb1 = new BuldStateButton(l1);
private JButton bb2 = new BuldStateButton(l2); private JLabel state = new JLabel("关闭"); private CheckLightThread thread; public Bulb() {
this.setTitle("灯泡模拟");
this.setSize(300, 200);
this.setLayout(new GridLayout(4, 1)); this.add(new JPanel() {
{
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(new JLabel("电源状态:"));
this.add(state);
}
}); this.add(new JPanel() {
{
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(l1);
this.add(l2);
}
}); this.add(new JPanel() {
{
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(b1);
this.add(b2);
this.add(b3);
this.add(b4);
}
}); this.add(new JPanel() {
{
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(bb1);
this.add(bb2);
}
}); setButtons(); this.setVisible(true);
} private void setButtons() {
b2.setEnabled(false);
b3.setEnabled(false);
b4.setSelected(true); b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
b1.changeState();
if(b1.isSelected()) {
b4.setSelected(false);
b2.setEnabled(true);
b3.setEnabled(true);
} else {
b2.setSelected(false);
b3.setSelected(false);
b4.setSelected(true);
b2.setEnabled(false);
b3.setEnabled(false);
}
changeSystemState();
}
}); b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(!b1.isSelected() b4.isSelected()) return; // 在电源关闭状态下,B2和B3按钮不起作用
b2.changeState();
if(b2.getCount() b3.getCount()) { // 如果B2被按下的次数比B3被按下的次数多,L1亮
l1.change(true);
l2.change(false);
}
}
}); b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(!b1.isSelected() b4.isSelected()) return; // 在电源关闭状态下,B2和B3按钮不起作用
b3.changeState();
if(b3.getCount() = b2.getCount()) { // 如果B2被按下的次数比B3被按下的次数少,L2亮
l1.change(false);
l2.change(true);
}
}
}); b4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
b4.changeState();
if(b4.isSelected()) {
b1.setSelected(false);
b2.setSelected(false);
b3.setSelected(false);
b2.setEnabled(false);
b3.setEnabled(false);
} else {
b1.setSelected(true);
b2.setEnabled(true);
b3.setEnabled(true);
}
changeSystemState();
}
});
} private void changeSystemState() {
if(!b1.isSelected() b4.isSelected()) { // 在电源关闭状态下,灯应不亮
state.setText("关闭");
l1.change(false);
l2.change(false);
thread.pause();
}
if(b1.isSelected() !b4.isSelected()) { // 从最近一次电源打开状态算起
state.setText("开启");
b2.clearCount();
b3.clearCount();
thread = new CheckLightThread();
thread.start();
}
} public static void main(String[] args)
{
new Bulb();
} private class BulbButton extends JToggleButton
{
private int count = 0; public BulbButton(String text) {
super(text);
} public void changeState() {
if(isSelected()) {
++count;
}
} public void clearCount() {
count = 0;
} public int getCount() {
return count;
} } private class BulbLight extends JPanel
{ private int id; private boolean bad; private boolean lightState; private JLabel label; private JLabel state = new JLabel("【暗】"); private JLabel state2 = new JLabel("-正常"); public BulbLight(int id) {
this.id = id;
label = new JLabel("灯泡" + id);
this.add(label);
this.add(state);
this.add(state2);
} public int getId() {
return id;
} public void light() {
this.state.setText("【" + ("【暗】".equals(this.state.getText())?"亮":"暗") + "】");
} public void change(boolean light) {
if(bad)return;
lightState = light;
this.state.setText("【" + (lightState?"亮":"暗") + "】");
} public boolean isBad() {
return bad;
} public void setState(boolean bad) {
this.bad = bad;
state2.setText((bad?"-故障":"-正常"));
if(bad) {
this.state.setText("【暗】");
} else {
this.state.setText("【" + (lightState?"亮":"暗") + "】");
}
} } private class BuldStateButton extends JButton implements ActionListener
{
private BulbLight light; public BuldStateButton(BulbLight light) {
super("破坏灯泡" + light.getId());
this.light = light;
this.addActionListener(this);
} public void actionPerformed(ActionEvent e) {
if(("破坏灯泡" + light.getId()).equals(this.getActionCommand())) {
this.setText("修复灯泡" + light.getId());
light.setState(true);
}
else {
this.setText("破坏灯泡" + light.getId());
light.setState(false);
}
}
} private class CheckLightThread extends Thread
{ private boolean runFlag = true; public void pause() {
this.runFlag = false;
} public void run() {
while(runFlag) {
try
{
if (l1.isBad() !l2.isBad())
{
l2.light();
}
if (!l1.isBad() l2.isBad())
{
l1.light();
}
sleep(INTER_SECOND);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
}截图如下:
灯光模拟的指令有哪些?
【太平洋汽车网】灯光模拟的指令有:夜间在没有路灯,照明不良条件下行驶。此指令打开前照灯。
请将前照灯变换成远光。抬转向灯一次。
夜间与机动车会车。或者,夜间在窄桥与非机动车会车。或者,夜间近距离跟车行驶.。以上三种指令都是抬灯一次,变换成近光。这种指令是三选一。
夜间通过没有交通信号灯控制的路口。或者,夜间通过急弯,拱桥。或者,夜间通过人行横道线。或者,夜间通过坡路,拱桥。或者,夜间超越前方车辆。遇有此类指令,连续抬灯两次。
夜间在道路上发生故障,妨碍交通又难以移动。此指令要求关前照灯,保留示宽灯,同时按下警示灯。或者。雾天行驶。此指令要求学员开启雾灯,同时按下警示灯。
科目三模拟夜间灯光考试结束,请关闭所有灯光。(图/文/摄:太平洋汽车网张霞1)
java控制红绿灯及模拟车辆运动
写两个程序分别模拟红绿灯和汽车:
1)红绿灯程序以报文形式通知汽车程序;
2)汽车程序需要用多线程来实现。
3)红绿灯程序用个循环,每隔n分钟红绿灯转换,同时通知汽车程序;
模拟交通灯 单片机C51,要电路图和程序
package guidemo;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
* pTitle: 图形用户界面/p
*
* pDescription: 简单的图形界面编程/p
*
* pCopyright: Copyright (c) 2006/p
*
* pCompany: /p
*
* @author vic
* @version 1.0
*/
public class ColorFrame extends Frame implements MouseListener {
Label L; //标签
TextField T; //文本域
Button B1, B2; //按钮
public ColorFrame() {
this.setLayout(null); //想要手动指定各组件的的位置
L = new Label("输入学号:"); //设定标签L内容
L.setBounds(60, 50, 50, 25); //设定标签L外观
this.add(L); //将标签L添加到窗口中
T = new TextField("请在这里输入"); //设定文本域T的内容
T.setBounds(125, 50, 90, 25); //设定文本域T的外观
this.add(T); //将文本域T添加到窗口中
B1 = new Button("变红!"); //设定按钮B1的内容
B1.setBounds(25, 90, 90, 25); //设定按钮B1的外观
B1.addMouseListener(this);//在B1上注册鼠标监听器
this.add(B1); //将按钮B1添加到窗口中
B2 = new Button("变绿!");
B2.setBounds(125, 90, 90, 25);
B2.addMouseListener(this);
this.add(B2);
WindowDestroyer Listener = new WindowDestroyer(); //创建关闭窗口监听器
this.addWindowListener(Listener); //将监听器添加到窗口中
this.setBackground(Color.yellow); //设定窗口背景颜色
this.setTitle("This is Frame!"); //设定窗口标题文字
this.setBounds(0, 0, 250, 220); //设定窗口位置和大小
this.setVisible(true); //显示窗口
}
public void mouseClicked(MouseEvent e) {
if (e.getComponent() == B1) {//getComponent返回按钮上面的字符串
this.setBackground(Color.red);
}
if (e.getComponent() == B2) {
this.setBackground(Color.green);
}
}
public void mouseExited(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public static void main(String[] args) {
new ColorFrame();
}
}
模拟灯光JAVA的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于模拟灯光科目三 语音播报、模拟灯光JAVA的信息别忘了在本站进行查找喔。