本文是小编为大家收集整理的关于如何直接从数据库将数据填充到Jtable的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。
问题描述
我的显示jtable取决于数据库中的特定列,而我的JTable是图像字段中的最后两个列.如何动态更改列而不会影响最后两个列.请建议我. P>
推荐答案
使用Vector来自java.util.Collection
请参阅此示例 http://www.roseindia.com
import java.sql.*; import java.util.*; import javax.swing.*; import javax.swing.table.TableColumn; public class JTableResultSet { public static void main(String[] args) { Vector columnNames = new Vector(); Vector data = new Vector(); JPanel panel = new JPanel(); // try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "root"); String sql = "Select name,address from user"; Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(sql); ResultSetMetaData metaData = resultSet.getMetaData(); int columns = metaData.getColumnCount(); for (int i = 1; i <= columns; i++) { columnNames.addElement(metaData.getColumnName(i)); } while (resultSet.next()) { Vector row = new Vector(columns); for (int i = 1; i <= columns; i++) { row.addElement(resultSet.getObject(i)); } data.addElement(row); } resultSet.close(); statement.close(); } catch (Exception e) { System.out.println(e); } JTable table = new JTable(data, columnNames); TableColumn column; for (int i = 0; i < table.getColumnCount(); i++) { column = table.getColumnModel().getColumn(i); column.setMaxWidth(250); } JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); JFrame frame = new JFrame(); frame.add(panel); //adding panel to the frame frame.setSize(600, 400); //setting frame size frame.setVisible(true); //setting visibility true } }
其他推荐答案
TableModel.setValueAt(Objet value, int row, int col)
问题描述
I have display the Jtable depends on the particular column from database and final two column in my jtable is image fields.How can i change the column dynamically without affect the last two column.please advise me.how to do.
推荐答案
Use Vector from java.util.Collection
See this example from http://www.roseindia.com
import java.sql.*; import java.util.*; import javax.swing.*; import javax.swing.table.TableColumn; public class JTableResultSet { public static void main(String[] args) { Vector columnNames = new Vector(); Vector data = new Vector(); JPanel panel = new JPanel(); // try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "root"); String sql = "Select name,address from user"; Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(sql); ResultSetMetaData metaData = resultSet.getMetaData(); int columns = metaData.getColumnCount(); for (int i = 1; i <= columns; i++) { columnNames.addElement(metaData.getColumnName(i)); } while (resultSet.next()) { Vector row = new Vector(columns); for (int i = 1; i <= columns; i++) { row.addElement(resultSet.getObject(i)); } data.addElement(row); } resultSet.close(); statement.close(); } catch (Exception e) { System.out.println(e); } JTable table = new JTable(data, columnNames); TableColumn column; for (int i = 0; i < table.getColumnCount(); i++) { column = table.getColumnModel().getColumn(i); column.setMaxWidth(250); } JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); JFrame frame = new JFrame(); frame.add(panel); //adding panel to the frame frame.setSize(600, 400); //setting frame size frame.setVisible(true); //setting visibility true } }
其他推荐答案
TableModel.setValueAt(Objet value, int row, int col)