java map关联实现查询(功能类似电话簿,字典,笔记)

import java.awt.EventQueue;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import java.awt.BorderLayout;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTable;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

public class mapLinkToMess {

//<声明及控件>   

private JFrame frame;
    private JTextField tf_search;
    private JTextField tf_name;
    private JTextField tf_phone;
    private JButton bt_search;
    private JButton bt_add;
    private JTextArea ta_result;
    private HashMap<String, String> words = new HashMap<String,String>();
    private JTable tabl_show;
    private JTable table_show;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    mapLinkToMess window = new mapLinkToMess();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public mapLinkToMess() {
        initialize();
        mapMessinit();
        setTable();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        
        frame = new JFrame();
        frame.setBounds(100, 100, 525, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setTitle("文豪低语");
        tf_name = new JTextField();
        tf_name.setBounds(50, 26, 143, 26);
        frame.getContentPane().add(tf_name);
        tf_name.setColumns(10);
        
        JLabel lblNewLabel = new JLabel("name");
        lblNewLabel.setBounds(15, 31, 54, 15);
        frame.getContentPane().add(lblNewLabel);
        
        tf_phone = new JTextField();
        tf_phone.setColumns(10);
        tf_phone.setBounds(263, 26, 143, 26);
        frame.getContentPane().add(tf_phone);
        
        JLabel lblPhonenum = new JLabel("phoneNum");
        lblPhonenum.setBounds(203, 31, 54, 15);
        frame.getContentPane().add(lblPhonenum);
        
        bt_add = new JButton("add");
        bt_add.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                mapMessInput();
            }
        });
        bt_add.setBounds(416, 27, 93, 23);
        frame.getContentPane().add(bt_add);
        
        tf_search = new JTextField();
        tf_search.setColumns(10);
        tf_search.setBounds(15, 78, 224, 26);
        frame.getContentPane().add(tf_search);
        
        bt_search = new JButton("search");
        bt_search.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                search();
            }
        });
        bt_search.setBounds(266, 79, 93, 23);
        frame.getContentPane().add(bt_search);
        
        ta_result = new JTextArea();
        ta_result.setBounds(15, 116, 346, 135);
        frame.getContentPane().add(ta_result);
        
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                setTable();
            }
        });
        scrollPane.setBounds(406, 76, 93, 175);
        frame.getContentPane().add(scrollPane);
        
        table_show = new JTable();
        scrollPane.setColumnHeaderView(table_show);
        
        tabl_show = new JTable();
        tabl_show.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                setTable();
            }
        });
        
        tabl_show.setBounds(406, 83, 93, 168);
        frame.getContentPane().add(tabl_show);
        
    }

<主要函数>
    protected void setTable()
    {
        //DefaultTableModel model=(DefaultTableModel)tabl_show.getModel();
        DefaultTableModel model = new DefaultTableModel(0, 0);
        model.setColumnIdentifiers(new Object[]{"name","message"});
        Set<String>names=words.keySet();
        for(Iterator<String>iterator=names.iterator();iterator.hasNext();)
        {
            String name=iterator.next();
            model.addRow(new Object[]{name,words.get(name)});
        }
        table_show.setModel(model);
    }
    protected void mapMessinit()
    {
        
        words.put("cat", "13124235325");
        words.put("dog", "21315345345");
        words.put("bird","31213131313");
        words.put("ribbit", "4375634423");
        
    }
    protected void mapMessInput()
    {
        
        String name=tf_name.getText();
        String phone=tf_phone.getText();
        words.put(name, phone);
    }
    protected void search()
    {
        String name=tf_search.getText();
        if(name.isEmpty())
        {
//            ta_result.show
            JOptionPane.showMessageDialog(null, "alert", "input is null",JOptionPane.WARNING_MESSAGE);
            return;
        }
        String mes=words.get(name);
        if(mes==null)
        {
            JOptionPane.showMessageDialog(null, "alert", "don't have any message about it",JOptionPane.WARNING_MESSAGE);
            return;
            
        }
        else
        {
            ta_result.setText(mes);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值