2013-06-13 5 views
-3

В моем приложении выполняется запрос db. Запрос получает имена столбцов таблицы. Я хочу создать jlabel и jtextfield на основе имен столбцов моей базы данных. И получите их значения, если я нажму кнопку отправки. Любая помощь оценивается. Спасибо.Создание JLabel и JTextField во время выполнения

Я попытался следующие коды .. но не повезло ..

public void getColumn(){ 
     String sql = "SELECT * from user"; 

     try { 
      pst = conn.prepareStatement(sql); 
      rs = pst.executeQuery(); 
      ResultSetMetaData rsmd = rs.getMetaData(); 
      int columnCount = rsmd.getColumnCount(); 
      int count = 1; 

      ArrayList<String> columns= new ArrayList<String>(); 
      for(int i = 1; i<= columnCount; i++){ 
       columns.add(rsmd.getColumnName(i)); 
      /System.out.println(String.valueOf(columns)); 
      } 
      ArrayList<JTextField> fields = new ArrayList<JTextField>(); 
     for(int i = 0; i <columns.size();i++){ 
       JLabel jl = new JLabel(String.valueOf(columns.get(i))); 
      jp.add(jl); 
      JTextField f = new JTextField(String.valueOf(columns.get(i))); 
      fields.add(f); 
      jp.add(f); 
         this.revalidate(); 
         this.repaint(); 
       } 

мне не нужно выводить мой запрос в JTable. Мне просто нужны имена столбцов в моей базе данных, затем создайте jlabel и jtextfield во время выполнения на основе этого.

В качестве примера.

Это моя пользовательская таблица ..

id | fName | mName | lName 

если я нажимаю кнопку ... результата был бы это ..

id | ___________________ 
Name | _______________ 
mName | _______________ 
lName | _______________ 

линия ссылается на ... текстовые поля

+0

Вы пытались что-то написать? какова ваша конкретная проблема? – Toilal

+1

[Что вы пробовали?] (Http://whathaveyoutried.com) –

ответ

1
  • JTable вместо массивов JLabel s/JTextField сек

  • все изменения JTables view should be done in XxxTableModel

  • выхода из JDBC могут быть трудно и долго событием, то вы, вероятно, проблема с Concurency in Swing, качанием Гуй может быть замораживанием или можете быть безответственными для мыши/Основных событий недо JDBC закончился

  • качели однопоточен и все выходные в GUI свинга должны быть сделаны на Event Dispatch thread, Swing является асинхронным с этой точкой зрения, и все обновления сделаны в один момент

0

Я уже решил своих проблемных парней.

Эта проблема прослушивала меня последние два дня. Наконец, после многих проб и ошибок, я понял, что это проблема выбора правильного LayoutManager.

По умолчанию контейнеры (т. Е. JPanel, JScrollPanel), добавленные с помощью перетаскивания внутри NetBeans, используют GroupLayout. Следовательно, если вы попытаетесь добавить в эти контейнеры новые компоненты, зависящие от среды выполнения, они не появятся.

Для решения этой проблемы необходимо сбросить диспетчер компоновки. Пока что менеджеры GridLayout и FlowLayout отлично работают.

jpanel.setLayout(new GridLayout()); 

И, это решило мою проблему.

+0

Что касается последнего абзаца, пожалуйста, не задавайте новые вопросы, используя форму ответа. Он должен быть опубликован как новый вопрос (более подробно, чем приведенный выше). – Ren

+0

Хорошо. Благодарю. Я просто новичок здесь. – kuletzxc

Смежные вопросы