当前位置:   article > 正文

每日一个java算法小分享【005用动态数组保存学生姓名】_java输入学生姓名到数组中

java输入学生姓名到数组中

实例说明

    Java中提供了各种数据集合类,这些类主要用于保存复杂结构的数据。其中,ArrayList集合可以看作为动态数组,它突破普通数组固定长度的限制,可以随时向数组中添加和移除元素,这将使数组更加灵活。本实例通过ArrayList集合类实例向程序动态添加与删除学生姓名的功能,所以数据都保存在ArrayList集合的实例中。

关键技术

     add()方法可以把任意类型的元素添加到List集合的尾部。其中元素类型任意。该方法声明如下:

    public boolean add(E element)

参数说明:

1.element:要添加到集合中的任意类型的元素值或对象

2.返回值:是否成功添加元素

移除元素

remove()方法可以移除集合中的指定元素。该方法声明如下:

public boolean remove(Object object)

参数说明:

1.object:要从集合中移除的对象

2.返回值:是否成功移除数据

DynamicArray.java

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/515834
推荐阅读
相关标签
  

闽ICP备14008679号