用java编写程序,在rame中加入两个复选框,显示标题为“学习”和“玩耍”,根据选择的情况,分别显示“玩耍”、“学习”、“劳逸结合”。
时间: 2023-11-12 14:03:51 浏览: 45
以下是一个简单的Java程序,实现了上述功能:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CheckBoxDemo implements ItemListener {
private JFrame frame;
private JLabel label;
public CheckBoxDemo() {
// 创建 JFrame 实例
frame = new JFrame("CheckBox Demo");
// 设置窗口大小
frame.setSize(300, 200);
// 设置布局方式为流式布局
frame.setLayout(new FlowLayout());
// 设置关闭窗口时的默认操作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建两个复选框
JCheckBox studyCB = new JCheckBox("学习");
JCheckBox playCB = new JCheckBox("玩耍");
// 添加复选框到窗口中
frame.add(studyCB);
frame.add(playCB);
// 创建一个标签,用于显示结果
label = new JLabel("请选择你的活动");
// 添加标签到窗口中
frame.add(label);
// 注册复选框的事件监听器
studyCB.addItemListener(this);
playCB.addItemListener(this);
// 显示窗口
frame.setVisible(true);
}
public static void main(String[] args) {
new CheckBoxDemo();
}
@Override
public void itemStateChanged(ItemEvent e) {
// 获取事件源(即被选中的复选框)
JCheckBox checkBox = (JCheckBox) e.getItem();
// 判断复选框是否被选中
if (checkBox.isSelected()) {
// 获取复选框的文本
String text = checkBox.getText();
// 根据选中的复选框,更新标签的文本
if (text.equals("学习")) {
label.setText("学习");
} else if (text.equals("玩耍")) {
label.setText("玩耍");
}
// 判断是否两个复选框都被选中
if (text.equals("学习") && playCB.isSelected()) {
label.setText("劳逸结合");
}
}
}
}
```
运行程序后,会显示一个窗口,其中有两个复选框和一个标签。当复选框被选中或取消选中时,会触发事件监听器中的 `itemStateChanged` 方法,根据选中的复选框,更新标签的文本。当两个复选框都被选中时,标签的文本为“劳逸结合”。