JFrame窗口
编写一个JFrame窗口,要求如下:
1. 在窗口的NORTH区放置一个JPanel面板。
2. JPanel面板放置如下组件:
(1) JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。
(2) JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。
(3) 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行,分别借助两个行型Box容器安排这两行组件的位置,而两个行型Box容器放入JPanel面板中,要两行组件对齐的话,可以把JPanel面板设置两行一列的GridLayout布局。
3. 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
4. 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。
1. 在窗口的NORTH区放置一个JPanel面板。
2. JPanel面板放置如下组件:
(1) JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。
(2) JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。
(3) 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行,分别借助两个行型Box容器安排这两行组件的位置,而两个行型Box容器放入JPanel面板中,要两行组件对齐的话,可以把JPanel面板设置两行一列的GridLayout布局。
3. 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
4. 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。
package bb;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class ButtonFrame extends JFrame{
JLabel lbInterest,lbSex;
JCheckBox cbBadminton,cbTableTennis,cbSing;
JRadioButton rbMale,rbFemale;
ButtonGroup group;
Box bInterestHorizontal,bSexHorizontal;JTextArea taText;
JPanel pan;
JScrollPane span;
GridLayout glayout;
MyListener mListener;
public static void main(String[] args) {
new ButtonFrame();
}
public ButtonFrame(){
init();
click();
}
private void click() {
cbBadminton.addItemListener(mListener);
cbTableTennis.addItemListener(mListener);
cbSing.addItemListener(mListener);
rbMale.addItemListener(mListener);
rbFemale.addItemListener(mListener);
}
public void init(){
//JPaner部分
pan=new JPanel(new GridLayout(2,2));
lbInterest=new JLabel("兴趣:");
lbInterest.setLocation(100,0);
lbSex=new JLabel("性别:");
cbBadminton=new JCheckBox("羽毛球");
cbTableTennis=new JCheckBox("乒乓球");
cbSing=new JCheckBox("唱歌");
group=new ButtonGroup();
rbMale=new JRadioButton("男");
rbFemale=new JRadioButton("女");
group.add(rbMale);
group.add(rbFemale);
bInterestHorizontal=Box.createHorizontalBox();
bInterestHorizontal.add(lbInterest);
bInterestHorizontal.add(Box.createHorizontalStrut(10));
bInterestHorizontal.add(cbBadminton);
bInterestHorizontal.add(cbTableTennis);
bInterestHorizontal.add(cbSing);
bSexHorizontal=Box.createHorizontalBox();
bSexHorizontal.add(lbSex);
bSexHorizontal.add(rbMale);
bSexHorizontal.add(rbFemale);
pan.add(bInterestHorizontal);
pan.add(bSexHorizontal);
taText=new JTextArea();
span=new JScrollPane(taText);
add(pan,BorderLayout.NORTH);
add(span,BorderLayout.CENTER);
this.setTitle("选择窗口");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600,400);
this.setLocation(400,400);
this.setVisible(true);
mListener=new MyListener();
}
private class MyListener implements ItemListener {
@Override
public void itemStateChanged(ItemEvent e) {
String str = "";
if(cbBadminton.isSelected())
str+=cbBadminton.getText()+"\n";if(cbTableTennis.isSelected())
str+=cbTableTennis.getText()+"\n";
if(cbSing.isSelected())
str+=cbSing.getText()+"\n";
if(rbMale.isSelected())
str+=rbMale.getText()+"\n";
if(rbFemale.isSelected())
str+=rbFemale.getText()+"\n";
taText.setText("");
taText.append(str);
}}
}