Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import javax.swing.*;
- import java.awt.*;
- class MyList extends JFrame {
- MyList(){
- super("LIST");
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setLayout(new BorderLayout());
- setSize(300, 300);
- MyListModel listModel = new MyListModel();
- JList jList = new JList();
- jList.setModel(listModel);
- JScrollPane scrollPane = new JScrollPane();
- scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
- scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
- scrollPane.getViewport().add(jList);
- JTextField inputField = new JTextField();
- add(scrollPane, BorderLayout.CENTER);
- add(inputField, BorderLayout.SOUTH);
- inputField.addActionListener(e -> {
- String rawText = e.getActionCommand();
- handleCommands(rawText, listModel);
- inputField.setText("");
- });
- setVisible(true);
- inputField.requestFocus();
- }
- private void handleCommands(String source, MyListModel listModel) {
- String[] sourceArray = source.split(" ", 2);
- switch (sourceArray[0]){
- case "add" : {
- if(sourceArray.length < 2 || sourceArray[1] == null) return;
- if (listModel.isElementExist(sourceArray[1]))
- JOptionPane.showMessageDialog(new JFrame(), sourceArray[1] + " already exists.", "Element exist", JOptionPane.WARNING_MESSAGE);
- else listModel.add(sourceArray[1]);
- break;
- }
- case "del" : {
- if(sourceArray.length < 2 || sourceArray[1] == null) return;
- if (listModel.isElementExist(sourceArray[1]))
- listModel.remove(listModel.getIndexOf(sourceArray[1]));
- else JOptionPane.showMessageDialog(new JFrame(), sourceArray[1] + " not exists.", "Element not exist", JOptionPane.WARNING_MESSAGE);
- break;
- }
- case "quit" : {
- this.dispose();
- break;
- }
- default: {
- JOptionPane.showMessageDialog(new JFrame(), sourceArray[0] + " is not recognized as an internal or external command!", "Unhandled command", JOptionPane.ERROR_MESSAGE);
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement