import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.AbstractListModel;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ListModel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;
import javax.swing.JList;
import java.awt.FlowLayout;
import javax.swing.JButton;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.JPopupMenu;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JComboBox;
public class DynamicArray
extends JFrame {
private JPanel contentPane;
private final JPanel panel =
new JPanel();
public static void main(String[] args) {
try { UIManager .setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); }
catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(
new Runnable() {
public void run() {
try { DynamicArray frame =
new DynamicArray(); frame.setVisible(
true); }
catch (Exception e) { e.printStackTrace(); } } }); }
public DynamicArray() { setTitle(
"\u7528\u52A8\u6001\u6570\u7EC4\u4FDD\u5B58\u5B66\u751F\u59D3\u540D"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(
100,
100,
337,
269); contentPane =
new JPanel(); contentPane.setBorder(
new EmptyBorder(
5,
5,
5,
5)); contentPane.setLayout(
new BorderLayout(
0,
0)); setContentPane(contentPane); JScrollPane scrollPane =
new JScrollPane(); contentPane.add(scrollPane, BorderLayout.CENTER); list =
new JList(); scrollPane.setViewportView(list); JPanel panel_1 =
new JPanel(); scrollPane.setColumnHeaderView(panel_1); JLabel label =
new JLabel(
"\u5B66\u751F\u59D3\u540D\uFF1A"); panel_1.add(label); textField =
new JTextField(); panel_1.add(textField); textField.setColumns(
10); panel.setPreferredSize(
new Dimension(
100,
10)); contentPane.add(panel, BorderLayout.EAST); panel.setLayout(
new FlowLayout(FlowLayout.CENTER,
5,
5)); JButton button =
new JButton(
"\u6DFB\u52A0\u5B66\u751F"); button.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) { do_button_actionPerformed(e); } }); panel.add(button); JButton button_1 =
new JButton(
"\u5220\u9664\u5B66\u751F"); button_1.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) { do_button_1_actionPerformed(e); } }); panel.add(button_1); }
private ArrayList<String> arraylist =
new ArrayList<String>();
private JTextField textField;
private JList list;
protected void do_button_actionPerformed(ActionEvent e) { textField.requestFocusInWindow(); textField.selectAll(); String text = textField.getText();
if (text.isEmpty())
return; arraylist.add(text); replaceModel(); }
protected void do_button_1_actionPerformed(ActionEvent e) { Object value = list.getSelectedValue(); arraylist.remove(value); replaceModel(); }
private void replaceModel() { list.setModel(
new AbstractListModel() {
@Override public int getSize() {
return arraylist.size(); }
@Override public Object getElementAt(
int index) {
return arraylist.get(index); } }); } }