powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable обновить
4 сообщений из 4, страница 1 из 1
JTable обновить
    #34598466
XiPoMaHt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 public    void  UpdateTable(JTable table,String query)  throws  RemoteException,SQLException
 	{       try  {
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
             int  row =  0 ;
             while  (rs.next()) {
                table.setValueAt(rs.getString("name"), row,  0 );
                table.setValueAt(rs.getString("gr"), row,  1 );
                table.setValueAt(rs.getString("mark"), row,  2 );
                row++;
            }
             for  ( int  i = row; i < table.getModel().getRowCount(); i++) 
            	{
                table.setValueAt("", i,  0 );
                table.setValueAt("", i,  1 );
                table.setValueAt("", i,  2 );
            	}
            stmt.close();
        }
         catch  (SQLException e) {
            e.printStackTrace();
        }
        table.repaint();
 	}        

я вызываю
Код: plaintext
1.
2.
3.
 final  JTable MTable =  new  JTable ( 25 , 6 );
UpdateTable(MTable,"select * from Sklad..t");
MTable.repaint();
Что я не правильно делаю подскажите пожалуйсто)))
...
Рейтинг: 0 / 0
JTable обновить
    #34598710
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для создания таблицы не используй ее напрямую. Пользуйся моделью таблицы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
 import  java.sql.ResultSet;
 import  java.sql.ResultSetMetaData;
 import  java.sql.SQLException;
 import  java.sql.SQLWarning;
 import  java.util.Vector;

 import  javax.swing.JTextArea;
 import  javax.swing.table.DefaultTableModel;

/**
 * Этот класс предназначен для реализации модели таблицы
 * 
 * @author admin
 * 
 */
 public   class  DefaultReplyTableModel  extends  DefaultTableModel {
	 private  ResultSetMetaData rsmd =  null ;

	 private  ResultSet resultSet =  null ;

	Vector data =  this .getDataVector();

	 private  Vector headers =  null ;


	/*
	 * (non-Javadoc)
	 * 
	 * @see javax.swing.table.DefaultTableModel#getColumnName(int)
	 */

	@Override
	 public  String getColumnName( int  column) {
		 return   super .getColumnName(column);
	}

	/**
	 * этот метод самостоятельно создает ResultSet согласно query и данному
	 * подключению. ResultSet будет иметь свойства:
	 * ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE
	 * 
	 * @param connection
	 * @param query
	 */
	 public   void  performResultSet(java.sql.Connection connection, String query) {
		 boolean  stay = false;
		java.sql.Statement statement =  null ;

		 try  {
			statement = connection.createStatement(
					ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_UPDATABLE);
			stay = statement.execute(query.toString());
			
			 if  (stay) {
				performResultSet(statement.getResultSet());
			}  else  {
				createDatabaseReplay(statement.getUpdateCount());
			}

		}  catch  (SQLException e) {
			performSQLException(connection, e);
		}
	}

	/**
	 * этот метод вызывается если результат выполнения sql-запроса есть
	 * resultSet таблица
	 * 
	 * @param resultSet
	 */
	 public   void  performResultSet(ResultSet resultSet) {
		 this .resultSet=resultSet;
		 int  columnCountOfResultSet =  0 ;
		data.clear();
		 try  {
			rsmd =  this .resultSet.getMetaData();
			columnCountOfResultSet = rsmd.getColumnCount();

			// создадим заголовки
			headers =  new  Vector(columnCountOfResultSet);
			 for  ( int  columnInd =  0 ; columnInd < columnCountOfResultSet; columnInd++)
				headers.add(rsmd.getColumnName(columnInd +  1 ));

			 if  (getRowCount() ==  0 ) {

				 int  ind =  1 ;

				Vector row =  null ;
				Object obj =  null ;
				 while  ( this .resultSet.next()) {
					row =  new  Vector();
					 for  ( int  i =  1 ; i <= columnCountOfResultSet; i++) {
						obj =  this .resultSet.getObject(ind++);
						row.add(obj);
					}
					ind =  1 ;
					data.add(row);
					row =  null ;
				}
			}

			setDataVector(data,  this .headers);
			 this .fireTableDataChanged();
		}  catch  (SQLException e) {
			// pearent.errorTextArea.append(e.getMessage());
			// e.printStackTrace();
		}  catch  (Exception e) {
			e.printStackTrace();
		}
	}

	 public   void  createDatabaseReplay( int  numUpdates) {
		headers =  new  Vector( 1 );
		headers.add("Replay");

		data.clear();
		Vector row =  new  Vector( 1 );
		row.add("Ok. " + numUpdates + " rows affected.");
		data.add(row);
		 this .setDataVector(data, headers);
		 this .fireTableDataChanged();
	}

	/**
	 * этот метод обрабатывает ошибку и отражает результат работы в таблице
	 * (через модель)
	 * 
	 * @param exp
	 */
	 public   void  performSQLException(java.sql.Connection connection,
			SQLException exp) {
		SQLWarning sqlWarning;
		SQLException sqlExp = exp;
		String warning =  null ;
		Vector row =  null ;

		headers =  new  Vector( 1 );
		headers.add("Error by query execution");
		data.clear();
		 try  {
			 for  (sqlWarning = connection.getWarnings(); sqlWarning !=  null ; sqlWarning = sqlWarning
					.getNextWarning()) {
				row =  new  Vector();
				warning = (warning ==  null  ? "" : warning) + "WARNING: "
						+ sqlWarning.getMessage() + ":"
						+ sqlWarning.getSQLState() + "\n";
				row.add(warning);
				data.add(row);
			}

			// === обработка ошибок ===
			 while  (sqlExp !=  null ) {
				row =  new  Vector();
				row.add(sqlExp.getMessage());
				data.add(row);
				sqlExp = exp.getNextException();
			}
			// === удалим старые сообщения ===
			connection.clearWarnings();
		}  catch  (SQLException e) {
			e.printStackTrace();
		}

		 this .setDataVector(data, headers);
		 this .fireTableDataChanged();
	}
	
	/**
	 * метод возвращает сформированный resultSet
	 * @return
	 */
	 public  ResultSet getResultSet(){
		 return  resultSet;
	}

	 public  Vector getHeaders() {
		 return  headers;
	}

}


обрати внимание на метод performResultSet(). Там как раз и вытаскиваются данные из базы.
Это живой код. На основе него можеш создать свою таблицу

Код: plaintext
1.
JTable table= new  JTable();
table.setModel( new  DefaultReplyTableodel);
...
Рейтинг: 0 / 0
JTable обновить
    #34598835
XiPoMaHt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че та я вообще запутался)))
Мне нужно передать запрос на сервет и вернуть на клиента))
Я все реализовал тока никак не могу реализовать отображение таблицы)))
На клиент я возращаю у же саму Jtable может это не верно,подскажите))
...
Рейтинг: 0 / 0
JTable обновить
    #34598915
XiPoMaHt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасиб всем за помошь))
Все получилось))
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable обновить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]