Java编程练习题(五)

1. 创建一用户界面窗口有两栏,其中一栏显示"北京","大连","武汉","上海","杭州","南京","广州","昆明",您可以从中选择您最喜欢的城市,另一栏显示六种品牌的电脑"宏基 ""NEC""联想""北大方正""DELL""Applet"。这两个列表可以实现单选和多选,Shift+鼠标点击项可以进行列表数据项的连续选择,Ctrl+鼠标点击项可以进行列表数据项的不连续选项。



 

import java.awt.*;

 import java.awt.event.*;

 import javax.swing.*;

 import java.util.Vector;

 

 public class Eg_1 {

       JFrame  f;   

     

    public  Eg_1(){

           f=new JFrame();

           Container  con=f.getContentPane();

           con.setLayout(new GridLayout(1,2)); 

           1.

           String  s[]={"11111","22222","33333","44444","55555",

                                 "66666666","77777","888","9999999"};

           JList  list1=new JList(s);    

           con.add(new JScrollPane(list1));

          

           //2

           Vector  v=new Vector();//向量----可变长度的数组

           v.addElement("aaaaaaaa");

           v.addElement("bbbba");

           v.addElement("ccccccccc");

           v.addElement("ddddddd");

                  v.addElement("aaaaaaaa");

           v.addElement("bbbba");

           v.addElement("ccccccccc");

           v.addElement("ddddddd");

          

           JList  list2=new JList(v);

           con.add(new JScrollPane(list2));

          

           f.setSize(400,300);

           f.setVisible(true);       

    } 

 

    public static void main(String args[]) {

        new Eg_1();

    }

}

 

 

 

 

2设计一个库存查询窗口,要求能够在选择商品种类的同时,在窗口中显示该商品的价格和数量。商品有"色拉油","齐心汽水","米酒","冰淇淋","蛋糕",相对应的价格和数量是:{"56""8""10""20""90"}{"232""50""109""48""30"}



 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Vector;

 

public class Eg_2 extends JApplet implements ItemListener{

 //声明类,因为是小应用程序,故需要继承父类JApplet,并声明接口

 

    Container ctp;

    //容器

 

    JTextField      tf1;

     JTextField      tf2=new JTextField(5);//创建两个文本框类实例tf1

    JLabel lb1=new JLabel("单价:"),

               lb2=new JLabel("库存量:");//创建两个标签类实例tf2

 

 

    String      obj[]={"色拉油","齐心汽水","米酒","冰淇淋","蛋糕"},//定义三个数组,并付初始值

                  price[]={"56","8","10","20","90"},

                  num[]={"232","50","109","48","30"};

   

    JComboBox cbx=new JComboBox();     //创建弹出式列表实例cbx

 

    public void init(){                //写小应用程序的初始化方法init()

        ctp=this.getContentPane();

        ctp.setLayout(new FlowLayout());   //设置布局管理器-流布局管理器

 

        tf1=new JTextField(5);

 

        for(int n=0;n<obj.length;n++)    //用循环将数组的值加到JcomboBox实例中

        cbx.addItem(obj[n]);

        ctp.add(cbx);

        cbx.addItemListener(this);          //cbx安装监视器,this是指类自己本身

        ctp.add(lb1);

        ctp.add(tf1);

        ctp.add(lb2);

        ctp.add(tf2);

    } //将标签、文本框、加到内容面板上

 

    public void itemStateChanged(ItemEvent e){

        int x=0,y;

        String ko=(String)e.getItem();

        for(y=0;y<obj.length;y++)

            if(ko==obj[y])

                x=cbx.getSelectedIndex();

        tf1.setText(price[x]);

        tf2.setText(num[x]);

    }

}

 

3 请你为单位设计一个图书资料借用系统。系统要求:借用图书资料的科室人员必须详细填写职工编号、图书资料名称、借书日期、还书日期、备注。(该例题形式常在网络问卷或会员注册中见到)。



 

 

import javax.swing.*;

import javax.swing.border.*;

import java.awt.*;

import java.awt.event.*;

 

 public class Eg_3 implements ActionListener{

 

    JFrame f = null;

 

    public void actionPerformed(ActionEvent e) {  //实现ActionListener类接口的方法

       String cls = e.getActionCommand(); //获得事件按钮的内容赋给字符串变量cls

                           //得到按钮上的名称

       if (cls.equals("借阅图书资料")) {  //cls的内容与字符串"借阅图书资料"比较

           new LendingSystem(f);  //如果相同,就创建LendingSystem类的匿名实例

       }

       else if (cls.equals("关闭系统")) {  //否则就关闭系统窗口

           System.exit(0);

        }

    }

 

    public Eg_3(){    // 构建BookdataDialog类的构造方法

        f = new JFrame("图书资料借阅系统");

        Container contentPane = f.getContentPane();

 

        JPanel buttonPanel = new JPanel();

 

        JButton b = new JButton("借阅图书资料");

        b.addActionListener(this);  //为按钮实例b安装监视器

        buttonPanel.add(b);       //将按钮实例b加到面板容器中

 

        b = new JButton("关闭系统");

        b.addActionListener(this);

        buttonPanel.add(b);

 

        buttonPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red,8),

                                          "图书资料借阅系统",TitledBorder.CENTER,TitledBorder.TOP));

 

       contentPane.add(buttonPanel,BorderLayout.CENTER);

 

       f.pack();

       f.setVisible(true);

    }

 

 

    public static void main(String[] args){

        new Eg_3();

    }

}

 

 

 

 class LendingSystem implements ActionListener{  //声明LendingSystem类和接口

    JTextField staffField,

                     objectField,

                     borrowDateField,

                     returnDateField,

                     reasonField;

 

    JDialog dialog; //声明对话框对象

 

    public void actionPerformed(ActionEvent e) {  //实现接口的方法

      String cmd = e.getActionCommand();

      if (cmd.equals("确定")) { }

         else if(cmd.equals("取消")){

             dialog.dispose();

       }}

 

 

    LendingSystem(JFrame f){     // 实现LendingSystem类的构造方法

     dialog = new JDialog(f,"借用图书资料",false);  //创建对话框实例

 

     GridBagConstraints c;     //创建容器对象c

     //往袋布局限制类

     int gridx,gridy,//网格坐标

          gridwidth,gridheight,//所占网格的个数

          anchor,//锚点

          fill,//填充

          ipadx,ipady;//定义整型数据变量

     double weightx,weighty;   //是否可以放大---------不为0

 

     Insets inset;             //创件插件类对象

     GridBagLayout gridbag = new GridBagLayout(); //创建网袋布局管理器实例

     Container dialogPane = dialog.getContentPane();

     dialogPane.setLayout(gridbag);

 

     ///L1

     JLabel label = new JLabel("图书资料编号 : "); //创建标签实例

     gridx=0;               //0

     gridy=0;               //0

     gridwidth = 1;         //占一个单位宽度

     gridheight = 1;        //占一个单位高度

     weightx = 0;           //窗口增大时组件宽度增大比率0

     weighty = 0;           //窗口增大时组件高度增大比率0

     anchor = GridBagConstraints.CENTER; //容器大于组件size时将组件置于容器中央

     fill = GridBagConstraints.BOTH;     //窗口拉大时会填满水平与垂直空间

     inset = new Insets(0,0,0,0);        //组件间间距

     ipadx = 0;                          //组件内水平宽度

     ipady = 0;                          //组件内垂直高度

 

 

     c = new GridBagConstraints(gridx,gridy,gridwidth,gridheight,

                                                  weightx,weighty,anchor,fill,inset,ipadx,ipady);

     gridbag.setConstraints(label,c);

     dialogPane.add(label);

 

     ///L2

     label = new JLabel("图书资料名称 : ");

     gridx=3;

     gridy=0;

     c = new GridBagConstraints(gridx,gridy,gridwidth,gridheight,

                                                weightx,weighty,anchor,fill,inset,ipadx,ipady);

 

     gridbag.setConstraints(label,c);

     dialogPane.add(label);

 

     L3

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数组章节作业 1、将一个数组中的元素倒排过来,不能新开一个数组的临时存储空 间,只能在原数组上改。 2、写一个用来模拟栈这种数据结构,要求底层 使用数组存储数据, 并给出相应的进栈和出栈的方法。MyStack int arr[]; int count;//栈中元素个数 public MyStack(int n){ arr = new int[n]; } boolean push(int num){ if(count==arr.length){} arr[count++]=num; } int pop(){ if(count==0){ return -1;} return arr[--count]; } 3、实现在一个数组指定位置添加元素和删除元素的功能。 1、数组容量问题? 2、添加元素前后数组中元素的变化 3、删除元素前后数组中元素的变化 面向对象章节作业 1,写一个,名为Animal,该有两个私有属性, name(代表动物的名字),和legs(代表动物的腿的条 数)。并提供个两构造方法,一个无参,默认给name 赋值为AAA,给legs赋值为4;另一个需要两个参数, 分别用这两个参数给私有属性赋值。该还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文字: XXX Moving!!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 2,写一个Person,包含以下属性:String name; int age; boolean gender; Person partner。 为Person写一个marry(Person p)方法,代表当前 对象和p结婚,如若可以结婚,则输出恭贺信息, 否则输出不能结婚原因。要求在另外一个中写一 个主方法,来测试以上程序。(下列情况不能结婚: 结婚年龄,男<24,女<22;3,某一方已婚) 3,写一个,名为Animal,该有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public 的访问方法。并提个两构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;另一个需要两个参数,分别用这两个参数给私有属性赋值。要求在第一个构造方法中调用第二个构造方法。该还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文字: XXX Moving!!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 4,写一个Fish,继承自Animal,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;该还要求覆盖Animal中的无参move()方法,要求输出:XXX Swimming!! 5,写一个Bird,继承自Animal,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值2;该还要求覆盖Animal中的无参move()方法,要求输出:XXX Flying!! 6,写一个Zoo,要求分别生成若干个Animal,Fish和Bird。并调用他们的属性和方法。 7,写Shape,要求如下: 1.int型属性x和y,分别表示图形的中心点坐标 2.无参构造器 3.构造器,对x和y进行初始化 4.draw()方法,输出"Shape draw" 写Circle,继承Shape,要求如下 1.double型属性r,表示圆的半径 2.无参构造器,将r初始化为1.0 3.构造器,对r进行初始化 4.构造器,对x、y、r进行初始化 5.draw()方法,输出"draw in circle"和x,y,r的值 写Rectangle,继承Shape,要求如下 1.double型属性height和width,表示矩形的高和宽 2.无参构造器,将height和width都初始化为1.0 3.构造器,对height和width进行初始化 4.构造器,对x、y、height、width进行初始化 5.draw()方法,输出"draw in rectangle"和x,y,height,width的值 使用ShapeTest测试以上代码。 8,某公司的雇员分为以下若干: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率 BasedPlusSalesEmployee:SalesEmployee的子,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。 写一个程序,把若干各种型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个都做成完全封装,不允许非私有化属性。 容器章节作业 1、写MyStack实现栈功能。在中使用ArrayList保存数据。 2、使用TreeSet和Comparator,写TreeSetTest1 要求:对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 3、使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列 4、使用TreeSet和Comparator,写TreeSetTestInner 要求: 对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 1. 使用匿名内部实现 2. 使用静态内部实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值