#问题描述
用java实现开关灯效果。
界面包括一个名为“灯状态”的标签,灯,两个分别为“开灯”、“关灯”的按钮。初始界面中的“关灯”按钮处于屏蔽状态,用鼠标单击无响应。点击“关灯”,灯变为黑色。(若使用JLabel,必须要用setOpaque(true),这样标签的背景颜色操作才有效果)
代码如下:
package week12;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
public class App extends JFrame implements ActionListener{
private JLabel la;
private JButton b_on,b_off;
public App() {
super("开关灯界面");
setSize(400,100);
setBackground(Color.pink);
setLocation(300,240);
setLayout(new FlowLayout());
add(new JLabel("灯状态:"));
la=new JLabel(" "); add(la);la.setBackground(Color.black);la.setOpaque(true);
b_on=new JButton("开灯");add(b_on);
b_off=new JButton("关灯");add(b_off);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b_on.addActionListener(this);
b_off.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_on) {
la.setBackground(Color.red);
la.setOpaque(true);
}
if(e.getSource()==b_off) {
la.setBackground(Color.black);
la.setOpaque(true);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new App();
}
}