Here is the code for the WordClass
package com.spconger.DictionaryProgram; public class Word { /************************* * this class store the content * of a word and definition * It has a toString() method * that concatenates the word and * a definition with a dash between */ //private fields private String word; private String definition; public String getWord() { return word; } public void setWord(String word) { this.word = word; } public String getDefinition() { return definition; } public void setDefinition(String definition) { this.definition = definition; } //this overrides the toString method //that comes from object public String toString(){ return getWord() + "--" + getDefinition(); } }
Here is the MyDictionary class
package com.spconger.DictionaryProgram; import java.util.ArrayList; public class MyDictionary { /***** * this class stores the Word objects * in an Arraylist. It provides methods * for adding words, removing them and * returning the whole list of words */ private ArrayList<Word> words; //initialize the ArrayList in the constructor public MyDictionary(){ words = new ArrayList<Word>(); } //add words to the list public void addWord(Word w){ words.add(w); } //remove words from the list public void removeWord(Word w){ for(Word wd : words){ if(wd.getWord().equals(w.getWord())){ words.remove(wd); }//end if }//end for }//end removeword //return the whole list of words public ArrayListgetWords(){ return words; } }
Here is the Form Again
package com.spconger.DictionaryProgram; //import allthe various form elements import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; 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 WordForm { /*************** * this class creates the form to add * words and display the results in a * JList object. The form contains * four panels: A border panel to orient * the others, A grid panel that contains * labels and textboxes, a scrollpane * with a list in the center and a * flow panel with the buttons at * the bottom */ private JFrame frame; private JPanel borderPanel; private JPanel newWordPanel; private JPanel buttonPanel; private JScrollPane scrollPane; private JList wordList; private JLabel wordPrompt; private JTextField wordText; private JLabel defPrompt; private JTextField defText; private JButton addButton; private JButton getWordsButton; private JButton exitButton; //instantiate the dictionary class private MyDictionary tech; public WordForm() { createFrame(); tech = new MyDictionary(); } private void createFrame() { frame = new JFrame(); frame.setBounds(100, 100, 300, 300); frame.add(createBorderPanel()); frame.setVisible(true); } private JPanel createBorderPanel() { borderPanel = new JPanel(); borderPanel.setLayout(new BorderLayout()); borderPanel.add(createNewWordPanel(), BorderLayout.NORTH); borderPanel.add(createScrollPane(), BorderLayout.CENTER); borderPanel.add(createButtonPanel(), BorderLayout.SOUTH); return borderPanel; } private JPanel createNewWordPanel() { newWordPanel = new JPanel(); newWordPanel.setLayout(new GridLayout(2, 2)); wordPrompt = new JLabel("Enter Word"); wordText = new JTextField(); defPrompt = new JLabel("Enter Definition"); defText = new JTextField(); newWordPanel.add(wordPrompt); newWordPanel.add(wordText); newWordPanel.add(defPrompt); newWordPanel.add(defText); return newWordPanel; } private JScrollPane createScrollPane() { wordList = new JList(); // add the selection listener to the list // wordlist.addListSelectionListener(new SelectionListener()); scrollPane = new JScrollPane(wordList); scrollPane.setBounds(20, 20, 100, 200); return scrollPane; } private JPanel createButtonPanel() { buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); addButton = new JButton("Add Word"); addButton.addActionListener(new AddButtonListener()); getWordsButton = new JButton("Get Words"); getWordsButton.addActionListener(new GetWordsListener()); exitButton = new JButton("Exit"); exitButton.addActionListener(new ExitListener()); buttonPanel.add(addButton); buttonPanel.add(getWordsButton); buttonPanel.add(exitButton); return buttonPanel; } private class AddButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { //in this method we add a word object //to the dictionary class Word w = new Word(); w.setWord(wordText.getText()); w.setDefinition(defText.getText()); tech.addWord(w); wordText.setText(""); defText.setText(""); } } private class GetWordsListener implements ActionListener { @Override //here we write to the JList public void actionPerformed(ActionEvent e) { ArrayList<Word> words = tech.getWords(); DefaultListModel model = new DefaultListModel(); for (Word w : words) { model.addElement(w.toString()); } wordList.setModel(model); } } private class ExitListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } } }
Here is the Program class
package com.spconger.DictionaryProgram; public class Program { public static void main(String[] args) { WordForm wf = new WordForm(); } }
Here is a picture of the program running