Целью является создание периодической c таблицы элементов поисковой системы. Пользователю задают вопросы, чтобы сузить результаты или, если пользователь знает имя элемента, в который он только что был введен. Как только он введен или элемент найден, он собирается предоставить информацию об элементе. У меня есть только несколько деталей и несколько элементов, чтобы код работал, и будет добавлено больше элементов и деталей, таких как структура и атом c вес.
Всякий раз, когда найден результат, он не дает Информация это просто дает пустой экран. Я думал поместить его в класс как toString, а затем достаточно было вызвать его в нижней части главной страницы, но я не могу понять, чего мне не хватает. Это похоже на простую системную команду печати, но она тоже не работает.
Любая помощь очень ценится.
import java.util.ArrayList;
import javax.swing.*;
public class Main {
public static void main(String args[]) {
ArrayList<Element> e = new ArrayList<Element>();
String choice, element = "", searchBy, symbol, chemGroupBlock, list = "", str = "";
e.add(new Element("Hydrogen", "Nonmetal", "H", 1));
e.add(new Element("Helium", "Nobel Gas", "He", 2));
e.add(new Element("Lithium", "Alkali Metal", "Li", 3));
choice = JOptionPane.showInputDialog(null,
"Do you know the name of the element you're looking for?"
+ "(Yes/No)", "Welcome to the Chem Table!", 3);
if (choice.equalsIgnoreCase("yes")) {
element = JOptionPane.showInputDialog(null,
"Enter the name of the Element.. ",
"Welcome to the Chem Table!", JOptionPane.PLAIN_MESSAGE);
}else if (choice.equalsIgnoreCase("no")) {
searchBy = JOptionPane.showInputDialog(null,
"Search by: 'chemical group block' or 'symbol'?", "Welcome to the Chem Table", 3);
if (searchBy.equalsIgnoreCase("chemGroupBlock")) {
chemGroupBlock = JOptionPane.showInputDialog(null,
"Enter Chemical Group Block (Nonmetal/Nobel Gases/Alkalies)",
"Welcome to The Chem Table", JOptionPane.PLAIN_MESSAGE);
for (int i = 0; i < e.size(); i++){
if (e.get(i).getchemGroupBlock().equals(chemGroupBlock)){
list = list + e.get(i).getName() + "\n";
}
}
element = JOptionPane.showInputDialog(null, list,
JOptionPane.PLAIN_MESSAGE);
} else if (searchBy.equalsIgnoreCase("symbol")) {
symbol = JOptionPane.showInputDialog(null,
"Enter the element symbol:(He/NaCl/Xe)",
"Welcome to the Chem Table",
JOptionPane.PLAIN_MESSAGE);
for (int i = 0; i < e.size(); i++) {
if (e.get(i).getSymbol().equals(symbol)) {
list = list + e.get(i).getName() + "\n";
}
}
element = JOptionPane.showInputDialog(null, list,
JOptionPane.PLAIN_MESSAGE);
}
}
for (int i = 0; i < e.size(); i++) {
if (e.get(i).getName().equals(element)) {
str = e.get(i).toString();
}
}
JOptionPane.showMessageDialog(null, str, "Element Results", 1);
}
}
Вот класс для элементов
public class Element {
private String name;
private String chemGroupBlock;
private String symbol;
private int atomicNumber;
public Element(String name, String chemGroupBlock, String symbol, int atomicNumber) {
this.name = name;
this.chemGroupBlock = chemGroupBlock;
this.symbol = symbol;
this.atomicNumber = atomicNumber;
}
public String getName(){
return name;
}
public String getchemGroupBlock(){
return chemGroupBlock;
}
public String getSymbol(){
return symbol;
}
public int getatomicNumber(){
return atomicNumber;
}
public String toString() {
return "Element: " + name + "\nChemical Group Block: " + chemGroupBlock + "\nSymbol: " + symbol + "\nAtomic Number" + atomicNumber;
}
}