In: Computer Science
JAVA PROJECT CREATING GUI WITH ARRAY
Read from a file that contains a paragraph of words. Put all the words in an array, put the valid words (words that have only letters) in a second array, and put the invalid words in a third array. Sort the array of valid words using Selection Sort. Create a GUI to display the arrays using a GridLayout with one row and three columns.
The input file
Each line of the input file will contain a sentence with words separated by one space. Read a line from the file and use a StringTokenizer to extract the words from the line.
An of the input file would be:
Mary had a little lamb whose fl33ce was white as sn0w And everywhere that @Mary went the 1amb was sure to go.
Submitting the Project.
You should have two files to submit for this project:
Project1.java
WordGUI.java
please don't copy the same code as the one uploaded in the chegg
try to write something simple and understandable
please explain every statement please, its for project and i don't want to have similar project like one once in chegg. it would be much apperciated
PLEASE GIVE IT A THUMBS UP, I SERIOUSLY NEED ONE, IF YOU NEED ANY MODIFICATION THEN LET ME KNOW, I WILL DO IT FOR YOU
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
input.txt
Mary had a little lamb
whose fl33ce was white as sn0w
And everywhere that @Mary went
the 1amb was sure to go.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Project.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
class Project1 {
public static void main(String args[]) {
File file = null;
FileReader fr = null;
BufferedReader br = null;
String line;
StringTokenizer st = null;
int numberOfWordsInFile;
String words[];
int index;
String validWords[];
int validWordsIndex;
String invalidWords[];
int invalidWordsIndex;
try {
file = new File("input.txt");
fr = new FileReader(file);
br = new BufferedReader(fr);
numberOfWordsInFile = 22;
words = new String[numberOfWordsInFile];
index = 0;
while ((line = br.readLine()) != null) {
st = new StringTokenizer(line);
while (st.hasMoreElements()) {
words[index] = (String) st.nextElement();
index++;
}
}
fr.close();
validWords = new String[numberOfWordsInFile];
validWordsIndex = 0;
invalidWords = new String[numberOfWordsInFile];
invalidWordsIndex = 0;
for (int i = 0; i < words.length; i++) if (
(!words[i].equals("")) &&
(words[i] != null) &&
(words[i].matches("^[a-zA-Z]*$"))
) {
validWords[validWordsIndex] = words[i];
validWordsIndex++;
} else {
invalidWords[invalidWordsIndex] = words[i];
invalidWordsIndex++;
}
selectionSort(validWords, validWordsIndex);
WordGUI wg = new WordGUI();
wg.display(
words,
index,
validWords,
validWordsIndex,
invalidWords,
invalidWordsIndex
);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
static String[] selectionSort(String[] validWords, int validWordsIndex) {
for (int i = 0; i < validWordsIndex - 1; i++) {
int min_index = i;
String minStr = validWords[i];
for (int j = i + 1; j < validWordsIndex; j++) {
if (validWords[j].compareTo(minStr) < 0) {
minStr = validWords[j];
min_index = j;
}
}
if (min_index != i) {
String temp = validWords[min_index];
validWords[min_index] = validWords[i];
validWords[i] = temp;
}
}
return validWords;
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WordGUI.java
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
class WordGUI {
public void display(
String[] words,
int index,
String[] validWords,
int validWordsIndex,
String[] invalidWords,
int invalidWordsIndex
) {
JFrame f = new JFrame();
f.setLayout(new GridLayout(1, 3));
String label = "";
label = convertArrayToLabel(words, index);
f.add(new JLabel(label));
label = convertArrayToLabel(validWords, validWordsIndex);
f.add(new JLabel(label));
label = convertArrayToLabel(invalidWords, invalidWordsIndex);
f.add(new JLabel(label));
f.setSize(1000, 1000);
f.setVisible(true);
}
public String convertArrayToLabel(String[] array, int maxIndex) {
String label = "<html>";
for (int i = 0; i < maxIndex; i++) {
label = label + array[i] + "<br/>";
}
label = label + "</html>";
return label;
}
}