设计下图所示用户界面,界面中包括四个多选按钮,一个文本区,一个标签,点击相应多选按钮,能实现其功能。
用BorderLayout布局实现,实现多选框的item事件,可以实现。
package java3.T9;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class Exam extends JFrame implements ItemListener{
JCheckBox cb1,cb2,cb3,cb4;
JLabel lblResult;
JTextArea taContent;
String answer="";
public Exam() {
super("多选题答题");
JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
cb1 = new JCheckBox("A");
cb2 = new JCheckBox("B");
cb3 = new JCheckBox("C");
cb4 = new JCheckBox("D");
cb1.addItemListener(this);
cb2.addItemListener(this);
cb3.addItemListener(this);
cb4.addItemListener(this);
northPanel.add(cb1);
northPanel.add(cb2);
northPanel.add(cb3);
northPanel.add(cb4);
add(northPanel,BorderLayout.NORTH);
String str = "A.10+10=20\n";
str += "B.10*10=80\n";
str += "C.10/10=1\n";
str += "D.10%10=0";
taContent = new JTextArea(str);
add(taContent);
lblResult = new JLabel("你选择的答案是:");
add(lblResult,BorderLayout.SOUTH);
setSize(300,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Exam();
}
@Override
public void itemStateChanged(ItemEvent e) {
answer="";
if(cb1.isSelected()) {
answer += cb1.getText();
}
if(cb2.isSelected()) {
answer += cb2.getText();
}
if(cb3.isSelected()) {
answer += cb3.getText();
}
if(cb4.isSelected()) {
answer += cb4.getText();
}
lblResult.setText("你选择的答案是:"+answer);
}
}