GitBucket
4.20.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
Jonathan
/
Assignment2B
Browse code
Removed all trailing spaces and changed all spaces to tabs.
master
1 parent
ac5e355
commit
d5bb627828f45f62de9c7d4345e5ab6048d609e5
Jonathan Ström
authored
on 31 Aug 2017
Patch
Showing
3 changed files
src/IListTest.java
src/List.java
src/MainWindow.java
Ignore Space
Show notes
View
src/IListTest.java
public class IListTest { public static void main(String[] args) { System.out.println("The testing is starting..."); IList<String> list = new List<String>(); /*************************************** * Testing to add elements to the list. ***************************************/ list.addAt(0, "1"); // 1 list.addAt(1, "2"); // 1, 2 list.addAt(0, "3"); // 3, 1, 2 list.addAt(1, "4"); // 3, 4, 1, 2 System.out.println("Expected output: 3, 4, 1, 2"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Testing to get the size of the list. ***************************************/ System.out.println("Expected output: Size: 4"); System.out.println("Size: " + list.size()); /*************************************** * Testing to remove two elements and a third element that doesn't exist. ***************************************/ System.out.println("Expected output: true, true, false"); System.out.println(list.removeAt(0)); // 4, 1, 2 System.out.println(list.removeAt(2)); // 4, 1 System.out.println(list.removeAt(2)); // 4, 1 /*************************************** * Print out the list. ***************************************/ System.out.println("Expected output: 4, 1"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Try to find an item that exists, and one that doesn't. ***************************************/ System.out.println("Expected output: 1, -1"); System.out.println(list.find("1")); System.out.println(list.find("2")); /*************************************** * Testing appending a list to a list. ***************************************/ IList<String> newList = new List<String>(); newList.addAt(5, "5"); newList.addAt(5, "7"); newList.addAt(5, "11"); list.append(newList); System.out.println("Expected output: 4, 1, 5, 7, 11"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Testing to clear the list and remove an element from an empty list. ***************************************/ System.out.println("Expected output: Size: 0, false"); list.clear(); System.out.println("Size: " + list.size()); System.out.println(list.removeAt(0)); System.out.println("The testing has ended..."); } }
public class IListTest { public static void main(String[] args) { System.out.println("The testing is starting..."); IList<String> list = new List<String>(); /*************************************** * Testing to add elements to the list. ***************************************/ list.addAt(0, "1"); // 1 list.addAt(1, "2"); // 1, 2 list.addAt(0, "3"); // 3, 1, 2 list.addAt(1, "4"); // 3, 4, 1, 2 System.out.println("Expected output: 3, 4, 1, 2"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Testing to get the size of the list. ***************************************/ System.out.println("Expected output: Size: 4"); System.out.println("Size: " + list.size()); /*************************************** * Testing to remove two elements and a third element that doesn't exist. ***************************************/ System.out.println("Expected output: true, true, false"); System.out.println(list.removeAt(0)); // 4, 1, 2 System.out.println(list.removeAt(2)); // 4, 1 System.out.println(list.removeAt(2)); // 4, 1 /*************************************** * Print out the list. ***************************************/ System.out.println("Expected output: 4, 1"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Try to find an item that exists, and one that doesn't. ***************************************/ System.out.println("Expected output: 1, -1"); System.out.println(list.find("1")); System.out.println(list.find("2")); /*************************************** * Testing appending a list to a list. ***************************************/ IList<String> newList = new List<String>(); newList.addAt(5, "5"); newList.addAt(5, "7"); newList.addAt(5, "11"); list.append(newList); System.out.println("Expected output: 4, 1, 5, 7, 11"); for (int i = 0; i < list.size(); ++i) { System.out.println(list.getAllElementsAsStrings()[i]); } /*************************************** * Testing to clear the list and remove an element from an empty list. ***************************************/ System.out.println("Expected output: Size: 0, false"); list.clear(); System.out.println("Size: " + list.size()); System.out.println(list.removeAt(0)); System.out.println("The testing has ended..."); } }
Ignore Space
Show notes
View
src/List.java
public class List<T> implements IList<T> { /** * Node for handling the list. */ private class Node { private T item; private Node next; public Node(T item, Node next) { this.item = item; this.next = next; } public Node(T item) { this.item = item; this.next = null; } } /** * Contains the root node. */ private Node root; /** * Add an element at a specific position starting at 0. */ @Override public void addAt(int pos, T elem) { if (root == null) { root = new Node(elem); } else if (pos == 0) { root = new Node(elem, root); } else if (pos > 0) { Node walker = root; Node prev = null; while (walker != null && pos > 0) { pos--; prev = walker; walker = walker.next; } walker = new Node(elem, walker); prev.next = walker; } } /** * Remove an element at a position. */ @Override public boolean removeAt(int pos) { boolean isRemoved = false; if (root != null) { if (pos == 0) { root = root.next; isRemoved = true; } else if (pos > 0 && pos < size()) { Node walker = root; Node prev = null; while (walker != null && pos > 0) { pos--; prev = walker; walker = walker.next; } prev.next = walker.next; walker = null; isRemoved = true; } } return isRemoved; } /** * Find an item in the list of type T. */ @Override public int find(T elem) { int returnValue = 0; Node walker = root; while (walker != null && walker.item != elem) { walker = walker.next; returnValue++; } if (walker == null) { returnValue = -1; } return returnValue; } /** * Return the current size of the list. */ @Override public int size() { int returnValue = 0; Node walker = root; while (walker != null) { walker = walker.next; returnValue++; } return returnValue; } /** * Remove all elements. */ @Override public void clear() { while (root != null) { Node temp = root.next; root = null; root = temp; } } /** * Append an IList<T> to this list. */ @Override public void append(IList<T> aList) { @SuppressWarnings("unchecked") T[] elements = (T[]) aList.getAllElementsAsStrings(); int size = size(); for (T element : elements) { addAt(size++, element); } } /** * Returns an array of strings with all elements. */ @Override public String[] getAllElementsAsStrings() { int size = size(); String[] list = new String[size]; Node walker = root; for (int i = 0; i < size; ++i) { list[i] = (String)walker.item; walker = walker.next; } return list; } }
public class List<T> implements IList<T> { /** * Node for handling the list. */ private class Node { private T item; private Node next; public Node(T item, Node next) { this.item = item; this.next = next; } public Node(T item) { this.item = item; this.next = null; } } /** * Contains the root node. */ private Node root; /** * Add an element at a specific position starting at 0. */ public void addAt(int pos, T elem) { if (root == null) { root = new Node(elem); } else if (pos == 0) { root = new Node(elem, root); } else if (pos > 0) { Node walker = root; Node prev = null; while (walker != null && pos > 0) { pos--; prev = walker; walker = walker.next; } walker = new Node(elem, walker); prev.next = walker; } } /** * Remove an element at a position. */ public boolean removeAt(int pos) { boolean isRemoved = false; if (root != null) { if (pos == 0) { root = root.next; isRemoved = true; } else if (pos > 0 && pos < size()) { Node walker = root; Node prev = null; while (walker != null && pos > 0) { pos--; prev = walker; walker = walker.next; } prev.next = walker.next; walker = null; isRemoved = true; } } return isRemoved; } /** * Find an item in the list of type T. */ public int find(T elem) { int returnValue = 0; Node walker = root; while (walker != null && walker.item != elem) { walker = walker.next; returnValue++; } if (walker == null) { returnValue = -1; } return returnValue; } /** * Return the current size of the list. */ public int size() { int returnValue = 0; Node walker = root; while (walker != null) { walker = walker.next; returnValue++; } return returnValue; } /** * Remove all elements. */ public void clear() { while (root != null) { Node temp = root.next; root = null; root = temp; } } /** * Append an IList<T> to this list. */ public void append(IList<T> aList) { @SuppressWarnings("unchecked") T[] elements = (T[]) aList.getAllElementsAsStrings(); int size = size(); for (T element : elements) { addAt(size++, element); } } /** * Returns an array of strings with all elements. */ public String[] getAllElementsAsStrings() { int size = size(); String[] list = new String[size]; Node walker = root; for (int i = 0; i < size; ++i) { list[i] = (String)walker.item; walker = walker.next; } return list; } }
Ignore Space
Show notes
View
src/MainWindow.java
import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class MainWindow extends JFrame { private static final long serialVersionUID = 1L; private IList<String> elementList; private JTextField txtInputField; private JLabel lblShowText; private JList<String> lstElementsList; private JButton btnAddElement, btnRemoveElement, btnClearAllElements; DefaultListModel<String> model; public MainWindow() { this.setTitle("QueueWindow"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 208); this.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); /* * Create the button listener. * Either use one or several different inner class listeners. * Also, either write the code inside the different listeners, * or write the code in different methods. Not sure what to use for this assignment. * Example: btnAddElement.addActionListener(new AddElementListener); */ ButtonListener buttonListener = new ButtonListener(); // Left panel JPanel leftPanel = new JPanel(new GridBagLayout()); // lblShowText lblShowText = new JLabel(); lblShowText.setText(" "); // To save a place in the grid for the label when it updates. c.gridx = 0; c.gridy = 0; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.CENTER; leftPanel.add(lblShowText, c); // txtInputField txtInputField = new JTextField(10); c.gridy++; leftPanel.add(txtInputField, c); // btnAddElement btnAddElement = new JButton("Add"); c.gridy++; leftPanel.add(btnAddElement, c); btnAddElement.addActionListener(buttonListener); // btnRemoveElement btnRemoveElement = new JButton("Remove"); c.gridy++; leftPanel.add(btnRemoveElement, c); btnRemoveElement.addActionListener(buttonListener); // btnClearAllElements btnClearAllElements = new JButton("Clear"); c.gridy++; leftPanel.add(btnClearAllElements, c); btnClearAllElements.addActionListener(buttonListener); // leftPanel c.gridx = 0; c.gridy = 0; this.add(leftPanel, c); // Right panel // lstElementsList lstElementsList = new JList<String>(); lstElementsList.setFixedCellWidth(150); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(lstElementsList); c.gridx = 1; c.gridy = 0; c.fill = GridBagConstraints.BOTH; this.add(scrollPane, c); elementList = new List<String>(); this.setVisible(true); } private class ButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { switch (e.getActionCommand()) { case "Add": addElement(); break; case "Remove": removeElement(); break; case "Clear": clearAllElements(); break; } } } private void updateList() { model = new DefaultListModel<String>(); for (String s : this.elementList.getAllElementsAsStrings()) { model.addElement(s.toString()); } lstElementsList.setModel(model); } private void addElement() { if (!txtInputField.getText().equals("")) { elementList.addAt(0, txtInputField.getText()); updateList(); } } private void removeElement() { elementList.removeAt(elementList.find(lstElementsList.getSelectedValue())); updateList(); } private void clearAllElements() { elementList.clear(); updateList(); } public static void main(String[] args) { new MainWindow(); } }
import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class MainWindow extends JFrame { private static final long serialVersionUID = 1L; private IList<String> elementList; private JTextField txtInputField; private JLabel lblShowText; private JList<String> lstElementsList; private JButton btnAddElement, btnRemoveElement, btnClearAllElements; DefaultListModel<String> model; public MainWindow() { this.setTitle("QueueWindow"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 208); this.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); /* Create the button listener * Either use one ButtonListener or use several different inner class listeners. * Example: btnAddElement.addActionListener(new AddElementListener); */ ButtonListener buttonListener = new ButtonListener(); // Left panel JPanel leftPanel = new JPanel(new GridBagLayout()); // lblShowText lblShowText = new JLabel(); lblShowText.setText(" "); // To save a place in the grid for the label when it updates. c.gridx = 0; c.gridy = 0; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.CENTER; leftPanel.add(lblShowText, c); // txtInputField txtInputField = new JTextField(10); c.gridy++; leftPanel.add(txtInputField, c); // btnAddElement btnAddElement = new JButton("Add"); c.gridy++; leftPanel.add(btnAddElement, c); btnAddElement.addActionListener(buttonListener); // btnRemoveElement btnRemoveElement = new JButton("Remove"); c.gridy++; leftPanel.add(btnRemoveElement, c); btnRemoveElement.addActionListener(buttonListener); // btnClearAllElements btnClearAllElements = new JButton("Clear"); c.gridy++; leftPanel.add(btnClearAllElements, c); btnClearAllElements.addActionListener(buttonListener); // leftPanel c.gridx = 0; c.gridy = 0; this.add(leftPanel, c); // Right panel // lstElementsList lstElementsList = new JList<String>(); lstElementsList.setFixedCellWidth(150); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(lstElementsList); c.gridx = 1; c.gridy = 0; c.fill = GridBagConstraints.BOTH; this.add(scrollPane, c); elementList = new List<String>(); this.setVisible(true); } private class ButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { switch (e.getActionCommand()) { case "Add": addElement(); break; case "Remove": removeElement(); break; case "Clear": clearAllElements(); break; } } } private void updateList() { model = new DefaultListModel<String>(); for (String s : this.elementList.getAllElementsAsStrings()) { model.addElement(s.toString()); } lstElementsList.setModel(model); } private void addElement() { if (!txtInputField.getText().equals("")) { elementList.addAt(0, txtInputField.getText()); updateList(); } } private void removeElement() { elementList.removeAt(elementList.find(lstElementsList.getSelectedValue())); updateList(); } private void clearAllElements() { elementList.clear(); updateList(); } public static void main(String[] args) { new MainWindow(); } }
Show line notes below