作业1:灯泡问题

假设需要制造一个带有四个按钮和两个灯泡的盒子并具有以下功能:

    ⑴ 有四个按钮输入,分别称为B1,B2,B3和B4;

    ⑵ 有两个灯泡作为输出,分别称为L1和L2;

    ⑶ B1是打开电源的按钮;

    ⑷ B4是关闭电源的按钮;

    ⑸ B2和B3 是操作按钮;

    ⑹ B1被按下后及B4被按下前,系统应称为电源打开状态;

    ⑺ B4被按下后及B1被按下前,系统应称为电源关闭状态;

    ⑻ 在电源关闭状态下,B2和B3按钮不起作用;

    ⑼ 在电源关闭状态下,灯应不亮;

    ⑽ 从最近一次电源打开状态算起,如果B2被按下的次数比B3被按下的次数多,L1亮,否则L2亮。

    ⑾ 任何时候都不能有一个以上的灯泡亮;

    ⑿ 如果其中的一个灯泡出现故障,另一个灯泡应以2秒钟的间隔闪烁,而不管B2和B3的操作过程。当B4按下时,闪烁停止;当B1被按下时,闪烁重新开始。当故障被排除后闪烁停止,系统恢复正常状态。

 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 
public class Box { 
     JFrame frame; 
     JButton button1,button2,button3,button4; 
     JLabel label1,label2; 
     JPanel panel1,panel2; 
     boolean off =false; 
     public static void main(String args[])
     { 
        Box box=new Box(); 
        box.go(); 
     } 
     void go(){ 
         frame=new JFrame("盒子"); 
         button1=new JButton("B1"); 
         button2=new JButton("B2"); 
         button3=new JButton("B3"); 
         button4=new JButton("B4"); 
         button1.setToolTipText("打开电源"); 
         button2.setToolTipText("L1灯亮"); 
         button3.setToolTipText("L2灯亮"); 
         button4.setToolTipText("关闭电源"); 
         label1=new JLabel(); 
         label1.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
         label2=new JLabel(); 
         label2.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
         JPanel panel1 =new JPanel(); 
         JPanel panel2 =new JPanel(); 
         panel1.add(label1,BorderLayout.WEST); 
         panel1.add(label2,BorderLayout.EAST); 
         panel2.add(button1); 
         panel2.add(button2); 
         panel2.add(button3); 
         panel2.add(button4); 
         Listener listener=new Listener(); 
         button1.addActionListener(listener); 
         button2.addActionListener(listener); 
         button3.addActionListener(listener); 
         button4.addActionListener(listener); 
         frame.add(panel1,BorderLayout.NORTH); 
         frame.add(panel2,BorderLayout.SOUTH);
         frame.setBackground(Color.BLACK); 
         frame.setSize(350,250); 
         frame.setDefaultCloseOperation(1); 
         frame.setVisible(true); 
         frame.setResizable(false); 
     } 
     class Listener implements ActionListener// 内部类,便于调用Box类中的成员变量on_off 
     { 
        public void actionPerformed(ActionEvent e) 
        { 
            String s=e.getActionCommand(); 
            if (s.equals("B1")) 
            { 
                off =true; 
            }
            if (off) { 
                if (s.equals("B2")) 
                { 
                    label1.setBorder(BorderFactory.createLineBorder(Color.yellow,60)); 
                    label2.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                    label1.setOpaque(true);
                    label2.setOpaque(true); 
                } 
                if (s.equals("B3")) 
                { 
                    label1.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                    label2.setBorder(BorderFactory.createLineBorder(Color.yellow,60)); 
                    label1.setOpaque(true); 
                    label2.setOpaque(true); 
                } 
                if (s.equals("B4")) 
                { 
                     label1.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                     label2.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                     label1.setOpaque(true); 
                     label2.setOpaque(true); 
                     off=false; 
                } 
            } 
            else 
            { 
                  label1.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                  label2.setBorder(BorderFactory.createLineBorder(Color.white,60)); 
                  label1.setOpaque(true); 
                  label2.setOpaque(true); 
               } 
            } 
     }
}

 

转载于:https://www.cnblogs.com/nijiaqing/p/6054126.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
叶庆生老师的软件工程与方法学的上机作业,包括: 1. 假设需要制造一个带有四个按钮两个灯泡盒子具有以下功能: ⑴ 有四个按钮输入,分别称为B1,B2,B3和B4; ⑵ 有两个灯泡作为输出,分别称为L1和L2; ⑶ B1是打开电源的按钮; ⑷ B4是关闭电源的按钮; ⑸ B2和B3 是操作按钮; ⑹ 在B1被按下后及B4被按下前,系统应称为电源打开状态; ⑺ 在B4被按下后及B1被按下前,系统应称为电源关闭状态; ⑻ 在电源关闭状态下,B2和B3按钮不起作用; ⑼ 在电源关闭状态下,灯应不亮; ⑽ 从最近一次电源打开状态算起,如果B2被按下的次数比B3被按下的次数多,L1亮,否则L2亮。 ⑾ 任何时候都不能有一个以上的灯泡亮; ⑿ 如果其中的一个灯泡出现故障,另一个灯泡应以2秒钟的间隔闪烁,而不管B2和B3的操作过程。当B4按下时,闪烁停止;当B1被按下时,闪烁重新开始。当故障被排除后闪烁停止,系统恢复正常状态。 2.1.一家公司有许多部门,部门名唯一地确定一个部门;每个部门由一名经理管理,也有的经理并不管理任何一个部门;每个部门生产多种产品,每种产品仅由一个部门生产。该公司有许多名员工为之工作,员工又进一步划分为经理和工人两类。每名工人可参加多个工程项目,每个项目需要多名工人;每位经理可以主持多个项目,每个项目仅有一人主持。使用对象模型描述类对象所具有的属性,以及公司类对象提供的服务。 2.2建立一个图书馆系统的用例视图 还有其他很多

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值