Как я могу преобразовать (или адаптировать) текстовый пользовательский интерфейс в графический интерфейс (Java) - PullRequest
1 голос
/ 11 декабря 2011

У меня большой проект Java (кадровая система на основе SQL в Java 6) с довольно сложным текстовым интерфейсом.Например, в главном классе, когда пользователь выбирает опцию person, он вызывает следующий код:

    int choice = new Integer(line);
    if(choice >= 1 && choice <= 13){  
        exit = false;
        models[choice - 1].showMenu();
    }

И затем он в конечном итоге вызывает класс Person, конструктор которого выглядит следующим образом:

  public Person(Connection con){
    conn = con;
    item = "Person";
    count = getLastID() + 1;
  }

и пример меню для получения всей информации о человеке выглядит следующим образом:

  protected void queryGetAll(){
      Statement stmnt = null;
      // create prepared statement
      try {
          stmnt = conn.createStatement();
          ResultSet result = stmnt.executeQuery("SELECT * FROM person");
          System.out.println("");
          System.out.println("");
          System.out.println(" *****************       LIST OF ALL PERSONS      ***************** ");
          System.out.println("");
          while(result.next()){
              System.out.print(" ID: " + result.getString("per_id") + "   |   ");
              System.out.print(" NAME: " + result.getString("name") + "   |   ");
              System.out.print(" STREET: " + result.getString("street") + "   |   ");
              System.out.print(" CITY: " + result.getString("city") + "   |   ");
              System.out.print(" ZIP CODE: " + result.getString("zip_code") + "   |   ");
              System.out.print(" E-MAIL: " + result.getString("email") + "   |   ");
              System.out.println(" GENDER: " + result.getString("gender"));
          }
          System.out.println("");
          System.out.println("");
          stmnt.close();
        } catch(SQLException ex) {
          System.err.println("SQLException: " + ex.getMessage());
        }
  }

Я хочу преобразовать весь этот TUI в GUI с использованием NetBeans, что упрощает построение GUI.Проблема в том, что я не знаю, как «захватить» результаты, то есть, что я помещаю в код GUI здесь:

this.textBox.setText("The person's information" + iDontKnowWhatsHere  );

Есть ли здесь какой-нибудь обходной путь?Если возможно захватить то, что по умолчанию помещено на консоль, и просто перевести это в текстовое поле GUI, я был бы счастлив сделать это.Любое руководство / советы приветствуются, спасибо

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Я думаю, что наиболее подходящим компонентом здесь является JTable.

Создание одного вектора строки в качестве имен столбцов и вектора вектора для данных таблицы.Главный вектор содержит строки (также векторы), и каждый rowVector имеет все значения строк.

Затем создайте DefaultTableModel и JTable на основе модели (JTable также имеет конструктор для передачи столбцов и данных)

2 голосов
/ 11 декабря 2011

Нет такой вещи, которая могла бы "преобразовать" TUI в GUI для вас. В Swing вам нужно будет использовать JLabel (s). Если вы хотите отобразить данные только одного человека, вы можете создать разные JLabel для каждого свойства, такие как lblID, lblName. Затем вы можете установить значения этих меток на основе результата вашего запроса:

JLabel lblID= new JLabel();
lbl.setText(result.getString("per_id"));
JLabel lblName = new JLabel();
lblName.setText(result.getString("name"));

Если вы хотите отобразить результат нескольких человек, вы можете взглянуть на JTable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...