JFrame窗口,面板,标签,按钮,文本区域 使用

编写一个JFrame窗口,要求如下:
1. 在窗口的NORTH区放置一个JPanel面板。
2. JPanel面板放置如下组件:
(1) JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。
(2) JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。
(3) 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行。要求借助Box容器合理的安排这些组件的位置(不是要求JPanel使用Boxlayout布局)。
3. 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。
4. 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。

MyWindow.java

package java0301;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyWindow extends JFrame implements ActionListener {

     JLabel interestLabel = new JLabel("兴趣:");     
     JCheckBox badmintonCheck = new JCheckBox("羽毛球"); 
     JCheckBox tableTtennisCheck = new JCheckBox("乒乓球"); 
     JCheckBox singCheck = new JCheckBox("唱歌");

     JLabel genderLabel = new JLabel("性别:");
     JRadioButton maleRadioButton = new JRadioButton("男");
     JRadioButton femaleRadioButton = new JRadioButton("女");

     JTextArea textArea = new JTextArea(5,25);

     MyWindow()
     {
          super("事件编程演示程序");
          Container contentPane = getContentPane();       

          JPanel northPanel = new JPanel();
          northPanel.setLayout(new GridLayout(2,1));  

          Box box1 = Box.createHorizontalBox();
          Box box2 = Box.createHorizontalBox();          

          box1.add(Box.createHorizontalStrut(3));
          box1.add(interestLabel );
          box1.add(badmintonCheck );
          box1.add(tableTtennisCheck );
          box1.add(singCheck);        

          ButtonGroup group = new ButtonGroup();
          group.add(maleRadioButton);
          group.add(femaleRadioButton); 

          box2.add(Box.createHorizontalStrut(3));         
          box2.add(genderLabel);
          box2.add(maleRadioButton);
          box2.add(femaleRadioButton);         

          northPanel.add(box1); 
          northPanel.add(box2);
          contentPane.add(northPanel, BorderLayout.NORTH);           

          JScrollPane scrollPane = new JScrollPane(textArea);
          contentPane.add(scrollPane, BorderLayout.CENTER);

          badmintonCheck.addActionListener(this); 
          tableTtennisCheck.addActionListener(this); 
          singCheck.addActionListener(this);
          maleRadioButton.addActionListener(this);
          femaleRadioButton.addActionListener(this);  

          setVisible(true);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(400, 300);
     } 

     public void actionPerformed(ActionEvent e)
     {
          if(e.getSource() == badmintonCheck)
          {
              if(badmintonCheck.isSelected() == true)
              {
                   textArea.append("羽毛球" + "\n"); 
              }
          }  
          else if(e.getSource() == tableTtennisCheck)
          {
              if(tableTtennisCheck.isSelected() == true)
              {
                   textArea.append("乒乓球" + "\n"); 
              }          
          } 
          else if(e.getSource() == singCheck)
          {
              if(singCheck.isSelected() == true)
              {
                   textArea.append("唱歌" + "\n"); 
              } 
          }
          else if(e.getSource() == maleRadioButton)
          {
             if(maleRadioButton .isSelected() == true)
             {
                   textArea.append("男" + "\n"); 
             } 
          }

          else if(e.getSource() == femaleRadioButton)
          {
             if(femaleRadioButton .isSelected() == true)
             {
                   textArea.append("女" + "\n"); 
             } 
          }
          else
          {  
              return; 
          }
     }

     public static void main(String args[])
     {
          new MyWindow();
     }
}

结果这里写图片描述

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
南京工程学院 实 验 报 告 课程名称 JAVA基础 实验项目名称 图形用户界面设计 实验学生班级 实验学生姓名 学    号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字 年 月 日 实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板文本编辑框、按钮、组合框等 多种布局方式,掌握窗口菜单和快捷菜单设计方式。 理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事 件的Java图形用户界面。 熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新 的税收政策,以下为截图: 因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500) tax=(wage-3500)*0.25-1005; if(wage>38500&&wage<=58500) tax=(wage-3500)*0.3-2755; if(wage>58500&&wage<=83500) tax=(wage-3500)*0.35-5505; if(wage>83500) tax=(wage-3500)*0.45-13505; text.setText(""+tax); } } 以上算法是根据税率表设计的,具体为: 我国规定个人收入在3500元起征个人所得税,分了多个阶段: 3500以下:不收税 3500以上到5000以下部分:3% 5000以上到8000以下部分:10% 8000以上到以下部分:20% 125000以上到385000以下部分:25% 385000以上到585000以下部分:30% 585000以上到835000以下部分:35% 83500以上:45% 首先算出每个阶段的速扣数,然后用此公式: 应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。 然后就得出以上算法。 四、实验原始纪录(源程序、数据结构等) import java.awt.*; import java.awt.event.*; import javax.swing.*; public class WageJFrame extends JFrame implements ActionListener { private JTable table;//表格 private Button button_b;//按钮 private Object datas[][];//数据 String titles[];//标题(为空) private JTextField text;//个人所得税 private JTextField text_wage;//输入的工资 public WageJFrame() { super("计算个人所得税"); Dimension dim=getToolkit().getScreenSize();//获得屏幕分辨率 this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);//设置窗口 大小 this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口 this.datas=new Object[8][4];//设置表格长宽 JLabel label=new JLabel("工资");//"工资"标签 text_wage=new JTextField("5000",7);//默认工资 JPanel jpane1=new JPanel();//面板 jpane1.add(label);//把标签加入面板中 jpane1.add(text_wage);//把输入工资的文本框加入面板中 this.getContentPane(
一个很不错的计算机网络课程设计,package com.briup.gui; import java.awt.BorderLayout;//BorderLayout(边布局) 布局管理器类 import java.awt.FlowLayout;//FlowLayout是流式布局 import java.awt.Toolkit;// 工具包 Toolkit 的子类被用于将各种组件绑定到特定本机工具包实现。 import java.awt.event.ActionEvent;//动作事件 import java.awt.event.ActionListener;//事件监听接口 import javax.swing.*; import com.briup.net.WebServerNet; public class WebServerFrame extends JFrame implements ActionListener { // 按钮面板 private JPanel btnPan = new JPanel(new FlowLayout(FlowLayout.CENTER));//创建FlowLayout布局面板,对齐方式为居中(FlowLayout.CENTER) private JLabel listenPortLb = new JLabel("Server listen port: ");//初始化控件(创建服务器监听的端口) private JTextField portTf = new JTextField("80", 5);//初始化控件,创建TextField(文本行类),默认端口号为,长度为 private JButton controlBtn = new JButton("Start");//初始化Button(按钮)(控制)控件 private JButton clearHintBtn = new JButton("Clear Hint");//初始化按钮(claer)控件 // 提示信息面板 private JTextArea hintTa = new JTextArea();//新建一个显示TextArea(纯文本)的多行区域 private WebServerNet net;//创建Web服务器网页 public WebServerFrame() { initComponent();//调用初始化函数,Component(组件类) net = new WebServerNet(this);//实例化一个用户定义的类 } /** *变量的初始化以及此类的入口 */ private void initComponent() { buildBtnPan(); buildHintPan(); setSize(400, 300);//设置窗口的大小 Toolkit tool = Toolkit.getDefaultToolkit();//得到默认的窗口模式 setLocation((tool.getScreenSize().width - this.getSize().width) / 2, (tool.getScreenSize().height - this.getSize().height) / 2); setTitle("Briup WebServer V1.0");//设置面板的标题 setDefaultCloseOperation(EXIT_ON_CLOSE);//设置用户关闭窗口时得操作 setResizable(false);//设置窗口是否可以改变大小,(false)表示不可以改变 setVisible(true);//设置可见,使窗口可见 } /** *新建一个面板 */
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 【关键字】设计 Java高级程序设计第二学期 期末复习题 判断题 1. 2. java.awt包是Java语言用来构建图形用户界面(GUI)的类库。( ) 3. 容器,一个容器可以容纳多个构件,并使他们成为一个整体。( ) 4. Java中所有的类都是通过直接或间接地继承 5. Java的图形用户界面的最基本的组成部分就是构件(Component)。( ) 6. 在Swing中用重量级的构件替代了AWT中的轻量级的构件。(X) 7. 与AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentPane)上。( ) 8. 类Panel默认的布局管理器是GridLayout。(X) 9. 每个Java小应用程序必须定义为Jframe类的子类。( ) 10. 使用UDP通信时,用DatagramPacket类把要发送的信息打包。( ) 11.AWT组件称为重型组件( ) 12.Swing组件称为轻型组件( ) 13.容器类不是GUI组件(X) 14.使用add方法可以在框架的内容窗格中添加组件( ) 15.FlowLayout 是最简单的布局管理器( ) 16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X) 17.布局管理器的属性不可以动态的改变(X) 18.每一时刻,一个容器只能有一个布局管理器( ) 19.要创建一个用户界面,需要创建一个框架或applet来存放用户界面组件( ) 20.Component类是所有用户界面的父类( ) 21. JFrame实例可以添加到容器中。( F ) 22. JCheckBox继承了AbstractButton类的所有属性。( T ) 23. JTextArea可以让用户输入多行文字。( T ) 24. JSlider与JScrollbor类似,但是JSlider具有更多的属性和更多是显示形式。( T ) 25.JTextField类继承了JTextComponent类,而JTextComponent类继承JComponent类。( T ) 26. 从应用程序创建一个子窗口,不用先创建JFrame的一个子类。( F ) 27. 在一个文本域中按下回车键就触发了ActionEvent事件。( T ) 28. Java使用事件委托处理模型来处理事件,源东西和监听东西可以是同一个东西。( T ) 29. JDBC是指Java程序与数据库连接的一种机制。( T ) 30.可以给一个面板添加框架。(F ) 31. File类提供实现文件读写的操作方法。 (T) 32. (T) 33.垂直文本位置指定文本相对于图标的垂直位置。(T) 34.不可以同时设置按钮上的文本和图标。(F) 35.标签是显示一小段文字、一幅图片或者二者皆有的区域。(T) 36.组合框是包含项目的一个列表,用户可以从中进行选则。(T) 37. 用read()方法读取文件内容时,返回-1表示文件结束。(F) 【设计】java高级程序设计期末复习题全文共16页,当前为第1页。38. PrintWriter类和PrintStream类可以以文本方式输入基本类型数据值、字符串和东西。(F) 【设计】java高级程序设计期末复习题全文共16页,当前为第1页。 39. 代表优先级的常数值越大优先级越低 (F) 40. 线程一旦被创建,则自动运行 (F ) 二、单选题 1、下列关于Java线程的说法那些是正确的( B ) A、每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。 B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。 C、Thread类属于java.util程序包。 D、以上说法无一正确。 2、运行下列程序, 会产生什么结果?( D ) public class X extends Thread implements Runable{ public void run(){ "this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } } A、第一行会产生编译错误 B、第六行会产生编译错误 C、第六行会产生运行错误 D、程序会运行和启动 3、下列选项中,用于定义接口的关键字是( C ) A、import B、implements C、interface D、protected 4.定义类头时能使用的修饰符是( C )。 A) private B) static C) abstract D) pr

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值