
import java.awt.*
import java.awt.event.ItemEvent
import java.awt.event.ItemListener
import java.awt.geom.Ellipse2D
public class test extends JFrame {
JComboBox cb = new JComboBox()
JPanel p1 = new JPanel()
drawPanel p2 = new drawPanel()
String str = ""
public test()
{
this.setLayout(new BorderLayout())
p1.setLayout(new GridLayout(1,1))
cb.addItem("红灯")
cb.addItem("绿灯")
cb.addItem("黄灯")
cb.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getItem().equals("红灯"))
{
p2.repaint()
p2.i = 1
}
if(arg0.getItem().equals("绿灯"))
{
p2.i = 2
p2.repaint()
}
if(arg0.getItem().equals("黄灯"))
{
p2.i = 3
p2.repaint()
}
}
})
p1.add(cb)
this.add(p1,BorderLayout.NORTH)
this.add(p2,BorderLayout.CENTER)
this.setSize(200,400)
this.setVisible(true)
}
class drawPanel extends JPanel
{
int i = 0
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g
Ellipse2D circle1 = new Ellipse2D.Double()
Ellipse2D circle2 = new Ellipse2D.Double()
Ellipse2D circle3 = new Ellipse2D.Double()
circle1.setFrameFromCenter(90,60,130,100)
if(i == 1)
{
g2.setColor(Color.RED)
}else g2.setPaint(Color.GRAY)
g2.fill(circle1)
circle2.setFrameFromCenter(90,160,130,200)
if(i == 2)
{
g2.setColor(Color.GREEN)
}else g2.setColor(Color.GRAY)
g2.fill(circle2)
circle3.setFrameFromCenter(90,260,130,300)
if(i == 3)
{
g2.setPaint(Color.YELLOW)
}else g2.setPaint(Color.GRAY)
g2.fill(circle3)
}
}
public static void main(String[] args) {
test t = new test()
}
}
以下是一个单片机间隔点亮一LED灯的C语言程序,以8051单片机为例:c
Copy code
#include
//包含了AT89C51的寄存器定义
void delay(unsigned int xms) //延时函数,xms为要延时的毫秒数
{
unsigned int i,j
for(i=xmsi>0i--)
for(j=112j>0j--)
}
void main()
{
P1=0x00//将P1口全部置为0,防止其它引脚影响
while(1)
{
P1=0xff//点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111
delay(1000)//延时1秒
P1=0x00//将P1口全部置为0,熄灭LED灯
delay(1000)//延时1秒
}
}
上述程序的作用是在单片机的P1口上间隔点亮一盏LED灯,每隔1秒钟灯的状态会发生一次变化,即由点亮状态变为熄灭状态,再由熄灭状态变为点亮状态。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)