【java面向对象程序设计】 实验三-图形用户界面

【java面向对象程序设计】

实验三-图形用户界面3 实验时间: 2021/7/4

一. 实验目的

(1)实现宠物信息列表,主人信息列表
(2)实现宠物管理项目的主功能界面功能
实验内容
1.实现查询功能
在这里插图2入图片描述
【需求】:点击确定按钮根据下拉列表所选”主人信息”,将与主人相关的信息,显示在文本域中。
【分析】:
1.在SearchListener类中添加代码,创建泛型集合,并将集合中的信息,显示在文本域中,将监听器与按钮绑定。
【思路】:
1.在SearchListener类中创建ArrayList泛型集合。
在这里插入图片描述

2.在创建Master对象,存入集合中。
在这里插入图片描述

3.将集合中的内容,显示在文本域中。
在这里插入图片描述

二. 源程序及主要算法说明

下面展示一些 内联代码片

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

public class SearchListener implements ActionListener {
    MainView mainView;
    public void setMainView(MainView mv){
        this.mainView = mv;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        //String select = mainView.cboSelect.getSelectedItem().toString();
        //mainView.txtArea.setText(select);
        ArrayList<Master> arrayList = new ArrayList<>();
        Master m1 = new Master("Tom", 2000);
        Master m2 = new Master("Amy", 2000);
        arrayList.add(m1);
        arrayList.add(m2);
        String select = mainView.cboSelect.getSelectedItem().toString();

        String str = "";
        switch (select) {

            case "主人信息":
                for (Master m : arrayList) {
                    str += "主人姓名:" + m.getName() + "金额:" + m.getMoney() + "\n";
                }
                break;
            case "宠物信息":
                break;
        }
        mainView.txtArea.setText(str);
    }
}
import javax.swing.*;

public class PetView extends JFrame {
    Box baseBox,boxV1,boxV2,boxV3;
    JTextField txtUserName;
    JPasswordField txtUserPwd;
    JButton btnOK,btnCancle;
    public LoginListener loginListener;    //����ActionEvent�¼��ļ�����
    public PetView() {
        setLayout(new java.awt.FlowLayout());
        init();
        setBounds(480,300,310,170);
        setTitle("宠物管理系统");
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void init() {
        boxV1=Box.createVerticalBox();
        boxV1.add(new JLabel("用户名"));
        boxV1.add(Box.createVerticalStrut(8));
        boxV1.add(new JLabel("密码"));

        txtUserName=new JTextField(10);
        boxV2=Box.createVerticalBox();
        boxV2.add(txtUserName);
        boxV2.add(Box.createVerticalStrut(8));
        txtUserPwd=new JPasswordField(10);
        boxV2.add(txtUserPwd);

        baseBox=Box.createHorizontalBox();
        baseBox.add(boxV1);
        baseBox.add(Box.createHorizontalStrut(10));
        baseBox.add(boxV2);
        add(baseBox);
        boxV3 = Box.createHorizontalBox();
        btnOK = new JButton("登录");
        boxV3.add(btnOK);
        boxV3.add(Box.createHorizontalStrut(10));
        btnCancle = new JButton("取消");
        boxV3.add(btnCancle);
        add(boxV3);

        loginListener = new LoginListener();

        loginListener.setView(this);   //����ǰ���ڵ����ô��ݸ�������
        btnOK.addActionListener(loginListener);      //button���¼�Դ,computer�Ǽ�����
        
    }

}
public class Master {
    String name;
    int money;
    public Master(){}
    public Master(String name,int money){
        setName(name);
        setMoney(money);
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setMoney(int money){
        this.money = money;
    }
    public int getMoney(){
        return money;
    }

}
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

public class MainView extends JFrame {
    JMenuBar menubar;
    JMenu petMenu,masterMenu,gameMenu;
    JMenuItem petItem1,petItem2,masterItem1,masterItem2,gameItem1,gameItem2;
    Box searchBox,showBox,baseBox;
    JLabel lblName;
    JComboBox<String> cboSelect;
    JButton btnOK;
    JTextArea txtArea;
        SearchListener slistener;
    public MainView(){}
    public MainView(String s,int x,int y,int w,int h ){
        init(s);
        setLocation(x,y);
        setSize(w,h);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private void init(String s) {
        setTitle(s);
        setLayout(new java.awt.FlowLayout());
        menubar = new JMenuBar();
        petMenu = new JMenu("宠物信息");
        masterMenu = new JMenu("主人信息");
        gameMenu = new JMenu("爱护宠物");
        petItem1 = new JMenuItem("添加宠物信息",new ImageIcon("n.jpg"));
        petItem2 = new JMenuItem("修改宠物信息",new ImageIcon("n.jpg"));
        masterItem1 = new JMenuItem("添加主人信息",new ImageIcon("n.jpg"));
        masterItem2 =new JMenuItem("修改主人信息");
        gameItem1 = new JMenuItem("添加游戏信息",new ImageIcon("n.jpg"));
        gameItem2 = new JMenuItem("修改游戏信息");

        petMenu.add(petItem1);
        petMenu.add(petItem2);

        masterMenu.add(masterItem1);
        masterMenu.add(masterItem2);

        gameMenu.add(gameItem1);
        gameMenu.add(gameItem2);
            menubar.add(petMenu);
        menubar.add(masterMenu);
        menubar.add(gameMenu);
        setJMenuBar(menubar);

        searchBox = Box.createHorizontalBox();
        lblName = new JLabel("选择类型");
        cboSelect = new JComboBox<String>();
        cboSelect.addItem("主人信息");
        cboSelect.addItem("宠物信息");
        cboSelect.addItem("爱护宠物");
        btnOK = new JButton("确定");

        searchBox.add(lblName);
        searchBox.add(Box.createHorizontalStrut(10));
        searchBox.add(cboSelect);
        searchBox.add(Box.createHorizontalStrut(10));
        searchBox.add(btnOK);
        add(searchBox);
           showBox = Box.createHorizontalBox();
        txtArea = new JTextArea(9,30);

        showBox.add(txtArea);

        baseBox = Box.createVerticalBox();
        baseBox.add(searchBox);
        baseBox.add(Box.createVerticalStrut(10));
        baseBox.add(showBox);
        add(baseBox);

        slistener = new SearchListener();
        slistener.setMainView(this);
        btnOK.addActionListener(slistener);

    }
}
public class MainPet {
    public static void main(String[] args) {
        PetView pf = new PetView();

    }
}
import java.awt.event.*;
public class LoginListener implements ActionListener {
    PetView view;
    public void setView(PetView view) {
        this.view = view;
    }

    public void actionPerformed(ActionEvent e) {
        try {
            String userName = view.txtUserName.getText();
            String userPwd = view.txtUserPwd.getText();

            if(userName.equals("admin")&&userPwd.equals("123123")) {
                System.out.println("登录成功!");
                MainView mv = new MainView("宠物管理系统",200,100,800,500);
                view.setVisible(false);
            }

            else {
                System.out.println("登录失败!");
            }

        }
        catch(Exception exp) {

        }
    }
}

三. 主要问题和解决方案

.在SearchListener类中创建ArrayList泛型集合时出现问题,运行显示找不到符号,在文件开头加入import java.util.ArrayList;问题被解决。

四. 测试数据及结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值