用动态数组保存学生姓名

  1. import java.awt.BorderLayout;  
  2. import java.awt.EventQueue;  
  3.   
  4. import javax.swing.AbstractListModel;  
  5. import javax.swing.DefaultListModel;  
  6. import javax.swing.JFrame;  
  7. import javax.swing.JPanel;  
  8. import javax.swing.ListModel;  
  9. import javax.swing.border.EmptyBorder;  
  10. import javax.swing.JScrollPane;  
  11. import javax.swing.JList;  
  12. import java.awt.FlowLayout;  
  13. import javax.swing.JButton;  
  14. import java.awt.Dimension;  
  15. import javax.swing.JLabel;  
  16. import java.awt.event.ActionListener;  
  17. import java.awt.event.ActionEvent;  
  18. import java.util.ArrayList;  
  19. import javax.swing.JTextField;  
  20. import javax.swing.UIManager;  
  21. import javax.swing.JPopupMenu;  
  22. import java.awt.Component;  
  23. import java.awt.event.MouseAdapter;  
  24. import java.awt.event.MouseEvent;  
  25. import javax.swing.JComboBox;  
  26.   
  27. public class DynamicArray extends JFrame {  
  28.       
  29.     private JPanel contentPane;  
  30.     private final JPanel panel = new JPanel();  
  31.       
  32.     /** 
  33.      * Launch the application. 
  34.      */  
  35.     public static void main(String[] args) {  
  36.         try {  
  37.             UIManager  
  38.                     .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");  
  39.         } catch (Throwable e) {  
  40.             e.printStackTrace();  
  41.         }  
  42.         EventQueue.invokeLater(new Runnable() {  
  43.             public void run() {  
  44.                 try {  
  45.                     DynamicArray frame = new DynamicArray();  
  46.                     frame.setVisible(true);  
  47.                 } catch (Exception e) {  
  48.                     e.printStackTrace();  
  49.                 }  
  50.             }  
  51.         });  
  52.     }  
  53.       
  54.     /** 
  55.      * Create the frame. 
  56.      */  
  57.     public DynamicArray() {  
  58.         setTitle("\u7528\u52A8\u6001\u6570\u7EC4\u4FDD\u5B58\u5B66\u751F\u59D3\u540D");  
  59.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  60.         setBounds(100100337269);  
  61.         contentPane = new JPanel();  
  62.         contentPane.setBorder(new EmptyBorder(5555));  
  63.         contentPane.setLayout(new BorderLayout(00));  
  64.         setContentPane(contentPane);  
  65.           
  66.         JScrollPane scrollPane = new JScrollPane();  
  67.         contentPane.add(scrollPane, BorderLayout.CENTER);  
  68.           
  69.         list = new JList();  
  70.         scrollPane.setViewportView(list);  
  71.           
  72.         JPanel panel_1 = new JPanel();  
  73.         scrollPane.setColumnHeaderView(panel_1);  
  74.           
  75.         JLabel label = new JLabel("\u5B66\u751F\u59D3\u540D\uFF1A");  
  76.         panel_1.add(label);  
  77.           
  78.         textField = new JTextField();  
  79.         panel_1.add(textField);  
  80.         textField.setColumns(10);  
  81.         panel.setPreferredSize(new Dimension(10010));  
  82.         contentPane.add(panel, BorderLayout.EAST);  
  83.         panel.setLayout(new FlowLayout(FlowLayout.CENTER, 55));  
  84.           
  85.         JButton button = new JButton("\u6DFB\u52A0\u5B66\u751F");  
  86.         button.addActionListener(new ActionListener() {  
  87.             public void actionPerformed(ActionEvent e) {  
  88.                 do_button_actionPerformed(e);  
  89.             }  
  90.         });  
  91.         panel.add(button);  
  92.           
  93.         JButton button_1 = new JButton("\u5220\u9664\u5B66\u751F");  
  94.         button_1.addActionListener(new ActionListener() {  
  95.             public void actionPerformed(ActionEvent e) {  
  96.                 do_button_1_actionPerformed(e);  
  97.             }  
  98.         });  
  99.         panel.add(button_1);  
  100.     }  
  101.       
  102.     private ArrayList<String> arraylist = new ArrayList<String>();  
  103.     private JTextField textField;  
  104.     private JList list;  
  105.       
  106.     protected void do_button_actionPerformed(ActionEvent e) {  
  107.         textField.requestFocusInWindow();  
  108.         textField.selectAll();// 选择文本框文本准备下次输入  
  109.         String text = textField.getText();// 获取用户输入姓名  
  110.         if (text.isEmpty())// 过滤为输入姓名的情况  
  111.             return;  
  112.         arraylist.add(text);// 把姓名添加到数组集合中  
  113.         replaceModel();// 把数组集合中内容显示到界面列表控件中  
  114.     }  
  115.       
  116.     protected void do_button_1_actionPerformed(ActionEvent e) {  
  117.         Object value = list.getSelectedValue();// 获取列表控件的选择项  
  118.         arraylist.remove(value);// 从数组集合中移除用户的选择项  
  119.         replaceModel();// 把数组集合中内容显示到界面列表控件中  
  120.     }  
  121.       
  122.     private void replaceModel() {  
  123.         // 为列表控件设置数据模型显示数组集合中的数据  
  124.         list.setModel(new AbstractListModel() {  
  125.             @Override  
  126.             public int getSize() {// 获取数组大小  
  127.                 return arraylist.size();  
  128.             }  
  129.               
  130.             @Override  
  131.             public Object getElementAt(int index) {// 获取指定索引元素  
  132.                 return arraylist.get(index);  
  133.             }  
  134.         });  
  135.     }  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值