Я сейчас застрял в попытке выяснить, почему мои значения массива не отображаются в диалоговом окне. Я выполняю задание, чьи данные:Как показать JOptionPane через пользовательский ввод
«Записать программу с именем TallestBuildingLookupthat содержит массив из 10 объектов TallestBuilding и заполнить его соответствующими данными. Затем используйте диалоговые окна, чтобы принять имя здания и отобразить местоположение здания , высота и истории. Если совпадение не найдено, отобразите сообщение об ошибке с недопустимым именем и разрешите пользователю искать новое имя здания ».
Моя основная проблема заключается в том, что мои значения массива отображаются из моего метода toString() и обрабатывают исключение, когда я не получаю имя в массиве. В частности, получение диалогового окна для циклического повторного ввода значения имени и повторного проверки массива. Любая помощь будет принята с благодарностью.
import javax.swing.*;
public class TallestBuildingLookup {
static class TallestBuilding{
private String name;
private String city;
private int height;
private int stories;
public TallestBuilding(String name, String city, int height, int stories) {
this.name = name;
this.city = city;
this.height = height;
this.stories = stories;
}
public String getName(){
return this.name;
}
public String toString(){
return this.name + " of " + this.city + ", "+ this.stories + "stories/" + this.height + " feet high." ;
}
}
public static void main(String[] args){
TallestBuilding[] tallestbuilding = new TallestBuilding[10];
tallestbuilding[0] = new TallestBuilding("One World Trade Center", "New York", 1776, 104);
tallestbuilding[1] = new TallestBuilding("Willis Tower", "Chicago", 1451, 108);
tallestbuilding[2] = new TallestBuilding("Empire State", "New York", 1250, 102);
tallestbuilding[3] = new TallestBuilding("Bank of America Tower", "New York", 1200, 55);
tallestbuilding[4] = new TallestBuilding("Aon Center", "Chicago", 1136, 83);
tallestbuilding[5] = new TallestBuilding("John Hancock Center", "Chicago", 1127, 100);
tallestbuilding[6] = new TallestBuilding("Wells Fargo Plaza", "Houston", 992,71);
tallestbuilding[7] = new TallestBuilding("Comcast Center", "Philidelphia", 974, 57);
tallestbuilding[8] = new TallestBuilding("Columbia Center", "Seattle", 967, 76);
tallestbuilding[9] = new TallestBuilding("Key Tower", "Clevland", 947, 57);
String entry = JOptionPane.showInputDialog("Enter a builing name");
String name = (String) entry;
System.out.println(name);
for (int i=0; i<10; i++){
if(name == tallestbuilding[i].getName()){
JOptionPane.showInputDialog(null, tallestbuilding[i]);
}
else{
JOptionPane.showInputDialog("Sorry - no "+ name + " was found.");
}
}
}
}
Проверьте мой ответ, посмотрите, подходит ли он вам! – BrunoDM