GUI—布局、监听器
2017-11-21 19:26
190 查看
作业:
编写一个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文本域,每行显示一个选项。可以重复点击,每次点击都显示选中 项。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Example{
public static void main(String[] args) {
// TODO Auto-generated method stub
Window win=new Window();
}
}
public class Window extends JFrame {
Container contentPane; //容器
JPanel panel;
Box interestHorizontalBox,sexHorizontalBox,allVerticalBox;
JCheckBox badmintonCBox,tabletennisCBox,singCBox; //三个多选按钮,羽毛球、乒乓球、唱歌
JRadioButton RBmale,RBfemale; //两个单选按钮,男、女
ButtonGroup group=new ButtonGroup(); //使用ButtonGroup组
GridLayout grid; //设置GridLayout布局
JScrollPane pane; //设置滚动窗格
JTextArea area;
Listener listener;
public Window() {
init();
setTitle("窗口"); //设置窗口标题
setLocation(30,30); //设置窗口位置
setSize(600,600); //设置窗口大小
setVisible(true); //设置窗口是否可见
setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置关闭图标如何处理
}
void init() {
//设置监听器
listener=new Listener();
//设置容器
contentPane = getContentPane();
//设置JPanel panel面板
panel=new JPanel();
grid=new GridLayout(2,1);//设置两行一列的GridLayout布局
panel.setLayout(grid);
contentPane.add(panel,BorderLayout.NORTH); //将JPanel面板放在窗口北边
//设置兴趣行
interestHorizontalBox=Box.createHorizontalBox(); //创建行型盒式布局的盒式容器
interestHorizontalBox.add(new JLabel("兴趣:"));
badmintonCBox=new JCheckBox("羽毛球");
tabletennisCBox=new JCheckBox("乒乓球");
singCBox=new JCheckBox("唱歌");
interestHorizontalBox.add(badmintonCBox);
interestHorizontalBox.add(tabletennisCBox);
interestHorizontalBox.add(singCBox);
badmintonCBox.addItemListener(listener); //为该选择框设置监听器
tabletennisCBox.addItemListener(listener);
singCBox.addItemListener(listener);
//设置性别行
sexHorizontalBox=Box.createHorizontalBox();
sexHorizontalBox.add(new JLabel("性别:"));
RBmale=new JRadioButton("男");
RBfemale=new JRadioButton("女");
group.add(RBmale); //将单选按钮男加入到ButtonGroup组
group.add(RBfemale);
sexHorizontalBox.add(RBmale);
sexHorizontalBox.add(RBfemale);
RBmale.addItemListener(listener);
RBfemale.addItemListener(listener);
//设置列,将兴趣行和性别行分别加入到列,构成两行一列的盒式布局
allVerticalBox=Box.createVerticalBox();
allVerticalBox.add(interestHorizontalBox);
allVerticalBox.add(Box.createHorizontalStrut(30)); //设置水平支撑高度为10
allVerticalBox.add(sexHorizontalBox);
panel.add(allVerticalBox);
//设置JScrollPane pane
area=new JTextArea();
pane=new JScrollPane(area);
contentPane.add(pane,BorderLayout.CENTER); //将滚动窗格放在窗口中心
}
public class Listener implements ItemListener{
public void itemStateChanged(ItemEvent ie) {
String str="";
if(badmintonCBox.isSelected())
str+=badmintonCBox.getText()+"\n";
if(tabletennisCBox.isSelected())
str+=tabletennisCBox.getText()+"\n";
if(singCBox.isSelected())
str+=singCBox.getText()+"\n";
if(RBmale.isSelected())
str+=RBmale.getText()+"\n";
if(RBfemale.isSelected())
str+=RBfemale.getText()+"\n";
area.setText("");
area.append(str);
}
}
}
编写一个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文本域,每行显示一个选项。可以重复点击,每次点击都显示选中 项。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Example{
public static void main(String[] args) {
// TODO Auto-generated method stub
Window win=new Window();
}
}
public class Window extends JFrame {
Container contentPane; //容器
JPanel panel;
Box interestHorizontalBox,sexHorizontalBox,allVerticalBox;
JCheckBox badmintonCBox,tabletennisCBox,singCBox; //三个多选按钮,羽毛球、乒乓球、唱歌
JRadioButton RBmale,RBfemale; //两个单选按钮,男、女
ButtonGroup group=new ButtonGroup(); //使用ButtonGroup组
GridLayout grid; //设置GridLayout布局
JScrollPane pane; //设置滚动窗格
JTextArea area;
Listener listener;
public Window() {
init();
setTitle("窗口"); //设置窗口标题
setLocation(30,30); //设置窗口位置
setSize(600,600); //设置窗口大小
setVisible(true); //设置窗口是否可见
setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置关闭图标如何处理
}
void init() {
//设置监听器
listener=new Listener();
//设置容器
contentPane = getContentPane();
//设置JPanel panel面板
panel=new JPanel();
grid=new GridLayout(2,1);//设置两行一列的GridLayout布局
panel.setLayout(grid);
contentPane.add(panel,BorderLayout.NORTH); //将JPanel面板放在窗口北边
//设置兴趣行
interestHorizontalBox=Box.createHorizontalBox(); //创建行型盒式布局的盒式容器
interestHorizontalBox.add(new JLabel("兴趣:"));
badmintonCBox=new JCheckBox("羽毛球");
tabletennisCBox=new JCheckBox("乒乓球");
singCBox=new JCheckBox("唱歌");
interestHorizontalBox.add(badmintonCBox);
interestHorizontalBox.add(tabletennisCBox);
interestHorizontalBox.add(singCBox);
badmintonCBox.addItemListener(listener); //为该选择框设置监听器
tabletennisCBox.addItemListener(listener);
singCBox.addItemListener(listener);
//设置性别行
sexHorizontalBox=Box.createHorizontalBox();
sexHorizontalBox.add(new JLabel("性别:"));
RBmale=new JRadioButton("男");
RBfemale=new JRadioButton("女");
group.add(RBmale); //将单选按钮男加入到ButtonGroup组
group.add(RBfemale);
sexHorizontalBox.add(RBmale);
sexHorizontalBox.add(RBfemale);
RBmale.addItemListener(listener);
RBfemale.addItemListener(listener);
//设置列,将兴趣行和性别行分别加入到列,构成两行一列的盒式布局
allVerticalBox=Box.createVerticalBox();
allVerticalBox.add(interestHorizontalBox);
allVerticalBox.add(Box.createHorizontalStrut(30)); //设置水平支撑高度为10
allVerticalBox.add(sexHorizontalBox);
panel.add(allVerticalBox);
//设置JScrollPane pane
area=new JTextArea();
pane=new JScrollPane(area);
contentPane.add(pane,BorderLayout.CENTER); //将滚动窗格放在窗口中心
}
public class Listener implements ItemListener{
public void itemStateChanged(ItemEvent ie) {
String str="";
if(badmintonCBox.isSelected())
str+=badmintonCBox.getText()+"\n";
if(tabletennisCBox.isSelected())
str+=tabletennisCBox.getText()+"\n";
if(singCBox.isSelected())
str+=singCBox.getText()+"\n";
if(RBmale.isSelected())
str+=RBmale.getText()+"\n";
if(RBfemale.isSelected())
str+=RBfemale.getText()+"\n";
area.setText("");
area.append(str);
}
}
}
相关文章推荐
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- GUI—布局、监听器
- Python -- Gui编程 -- Qt库的使用 -- 布局与基本控件
- Tkinter--GUI布局
- unity 基本函数整理[3_GUI控件+GUILayout界面布局]
- Button 在布局文件中定义监听器,文字阴影,自定义图片,代码绘制样式,添加音效的方法
- 赵雅智_java GUI设计和布局
- GUI实现数据转移(文本框到文本域,流失布局)
- GUI布局学习1
- 十七、java-GUI之边界布局(BorderLayout)
- C/C++ -- Gui编程 -- Qt库的使用 -- Qt窗体的类型状态布局