图形用户界面 作业2 事件
来源:互联网 发布:wow猎人 知乎 编辑:程序博客网 时间:2024/06/06 00:39
- 在窗口的NORTH区放置一个JPanel面板。
- JPanel面板放置如下组件:
- JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。
- JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。
- 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行,分别借助两个行型Box容器安排这两行组件的位置,而两个行型Box容器放入JPanel面板中,要两行组件对齐的话,可以把JPanel面板设置两行一列的GridLayout布局。
- 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
- 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。
guievent.js
package gui;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GraphicsConfiguration;import java.awt.GridLayout;import java.awt.HeadlessException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;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 guievent extends JFrame implements ActionListener { private JPanel northjpanel; private JScrollPane centerJpanel; private JLabel lbinter; private JLabel lbsex; private JCheckBox jcinter1; private JCheckBox jcinter2; private JCheckBox jcinter3; private JRadioButton jcsex1; private JRadioButton jcsex2; private Box box1; private Box box2; private JScrollPane jscroll; private JTextArea jtext; private ButtonGroup group; private String s; private int internumb=0; guievent() throws HeadlessException { super(); northjpanel=new JPanel(); northjpanel.setLayout(new GridLayout(2, 1)); Container contentPane=getContentPane(); box1=Box.createHorizontalBox(); box2=Box.createHorizontalBox(); lbinter =new JLabel("兴趣"); lbsex=new JLabel("性别"); jcinter1=new JCheckBox("羽毛球"); jcinter2=new JCheckBox("乒乓球"); jcinter3=new JCheckBox("唱歌"); group =new ButtonGroup(); jcsex1=new JRadioButton("男"); jcsex2=new JRadioButton("女"); jcinter1.addActionListener(this); jcinter2.addActionListener(this); jcinter3.addActionListener(this); jcsex1.addActionListener(this); jcsex2.addActionListener(this); group.add(jcsex1); group.add(jcsex2); jtext=new JTextArea(5,25); box1.add(lbinter); box1.add(jcinter1); box1.add(jcinter2); box1.add(jcinter3); box2.add(lbsex); box2.add(jcsex1); box2.add(jcsex2); northjpanel.add(box1); northjpanel.add(box2); centerJpanel=new JScrollPane(jtext); setBounds(300,300,400,300); setLayout(new BorderLayout()); setVisible(true); contentPane.add(northjpanel,BorderLayout.NORTH); contentPane.add(centerJpanel); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); validate(); } public static void main(String[] args) { // TODO Auto-generated method stub new guievent(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==jcinter1) { s=jtext.getText(); if(jcinter1.isSelected()) { addHead("\n兴趣:"); internumb++; s=s.replace("兴趣:", "兴趣:"+"\n羽毛球"); } else { internumb--; s=s.replace("\n羽毛球", ""); if(internumb==0) { s=s.replace("\n兴趣:", ""); } } jtext.setText(s); } if(e.getSource()==jcinter2) { s=jtext.getText(); if(jcinter2.isSelected()) { addHead("\n兴趣:"); internumb++; s=s.replace("兴趣:", "兴趣:"+"\n乒乓球"); } else { internumb--; s=s.replace("\n乒乓球", ""); if(internumb==0) { s=s.replace("\n兴趣:", ""); } } jtext.setText(s); } if(e.getSource()==jcinter3) { s=jtext.getText(); if(jcinter3.isSelected()) { addHead("\n兴趣:"); internumb++; s=s.replace("兴趣:", "兴趣:"+"\n唱歌"); } else { internumb--; s=s.replace("\n唱歌", ""); if(internumb==0) { s=s.replace("\n兴趣:", ""); } } jtext.setText(s); } if(e.getSource()==jcsex1) { s=jtext.getText(); if(jcsex1.isSelected()) { addHead("\n性别:","女","男"); jtext.setText(s); } } if(e.getSource()==jcsex2) { s=jtext.getText(); if(jcsex2.isSelected()) { addHead("\n性别:","男","女"); jtext.setText(s); } } } /** * 此函数为性别需要用到的方法 将性别内容写入文本框 * @param string 选项标题 * @param string1 如果有此字符串 则被替换掉 * @param string2 如果有此字符串直接退出 否则把string1替换掉 如果没有s1 就讲s2添加到标题后边; */ private void addHead(String string, String string1, String string2) { // TODO Auto-generated method stub if(!s.contains(string)) { s+=string; } if(s.contains(string2))return; if(s.contains(string1)) { s=s.replace(string1, string2); }else { s+=string2; } } /** * @param string 如果没有标题,就添加上标题 */ private void addHead(String string) { // TODO Auto-generated method stub if(s.contains(string))return; else { s+=string; } }}
运行效果:
阅读全文
0 0
- 图形用户界面 作业2 事件
- 图形用户界面作业2
- 图形用户界面--窗口点击事件
- 第十二周作业图形用户界面1
- java图形用户界面2
- 图形用户界面2
- 图形用户界面2
- 图形用户界面2
- 图形用户界面-2
- 利用扩展事件监控死锁-图形用户界面
- 图形用户界面 第二课 事件驱动
- JAVA图形用户界面编程及事件处理
- java 图形用户界面编程 之 事件处理
- 图形用户界面之窗口事件编程
- Java图形用户界面设计2
- 第十三周图形用户界面2
- java中级-12-GUI图形用户界面(2)-GUI事件响应机制
- 图形用户界面
- Tensorflow实战学习(四)【张量表示、类型、形状、计算】
- pip 安装报错,is not a supported wheel on this platform
- java多线程和synchronize锁
- FPGA入门实验
- 7
- 图形用户界面 作业2 事件
- hihocoder1580-Matrix
- Mac下测试顺序线性表
- dlib库+vs2017详细配置流程
- PostgreSQL入门(一)——世界上最先进的开源数据库
- 直接用Socket TCP开发网络游戏(二)
- 唐御智能销售管家
- Java中的策略模式-电商支付案例
- Hadoop2.6版本的FSImage结构解析