Java的Jtable、从数据库取数据显示在表格中
- 格式:doc
- 大小:66.50 KB
- 文档页数:3
java中jtable的用法一、JTable简介JTable是Java Swing包中的一个组件,用于在图形用户界面(GUI)中显示和编辑表格数据。
它可以显示任何类型的数据,包括文本、数字、日期和图像等。
二、创建JTable1. 创建一个空的JTable可以通过以下代码创建一个空的JTable:```JTable table = new JTable();```2. 从二维数组创建JTable可以通过以下代码从二维数组创建一个简单的JTable:String[][] data = {{"John", "Doe"}, {"Jane", "Doe"}};String[] columnNames = {"First Name", "Last Name"};JTable table = new JTable(data, columnNames);```3. 从TableModel创建JTable可以通过实现TableModel接口并使用它来创建一个定制的TableModel,然后将其传递给JTable构造函数来创建一个自定义的JTable。
4. 从数据库中获取数据并创建JTable可以通过使用Java数据库连接(JDBC)API与数据库进行交互,并将结果集转换为TableModel,然后将其传递给JTable构造函数来从数据库中获取数据并创建一个自定义的JTable。
三、设置表格属性1. 设置表头可以使用以下代码设置表头:```String[] columnNames = {"First Name", "Last Name"};table.setColumnIdentifiers(columnNames);```2. 设置表格行高和列宽可以使用以下代码设置表格行高和列宽:```table.setRowHeight(30);table.getColumnModel().getColumn(0).setPreferredWidth(100); ```3. 设置表格背景色和前景色可以使用以下代码设置表格背景色和前景色:```table.setBackground(Color.white);table.setForeground(Color.black);```4. 设置表格字体可以使用以下代码设置表格字体:```Font font = new Font("Arial", Font.PLAIN, 14);table.setFont(font);```5. 设置表格边框可以使用以下代码设置表格边框:```Border border = BorderFactory.createLineBorder(Color.black); table.setBorder(border);```四、渲染器和编辑器1. 渲染器渲染器用于将单元格中的值呈现为用户界面上的文本或图像。
如何使用Table利用JTable 类,可以以表格的形式展示数据,可设置允许用户编辑数据。
JT able 本身不拥有或者缓存数据;它只是数据的视图。
这里有一个放在滚动面板上的典型表格:本文展示如何完成一些常见的表格相关的任务:包括以下部分:(1)创建一个简单的表格(2)向容器添加表格(3)改变每每一栏的宽度(4)用户选择(5)创建表格模型(6)监听数据改变(7)点燃数据改变事件(8)概念:编辑器和渲染器(9)使用自定义渲染器(10)为单元格指定提示工具(11)为列头指定提示工具(12)排序和过滤(13)使用组合框作为编辑器(14)使用其他编辑器(15)使用编辑器验证用户的文本输入(16)打印(17)例子列表(1)创建一个简单的表格SimpleTableDemo.java中的表格在一个字符串数组中声明各个列名Java代码1String[] columnNames = {"First Name",2"Last Name",3"Sport",4"# of Years",5"Vegetarian"};数据初始化并存储在二维数组:Java代码6Object[][] data = {7 {"Kathy", "Smith",8"Snowboarding", new Integer(5), new Boolean(false)},9 {"John", "Doe",10"Rowing", new Integer(3), new Boolean(true)},11 {"Sue", "Black",12"Knitting", new Integer(2), new Boolean(false)},13 {"Jane", "White",14"Speed reading", new Integer(20), new Boolean(true)},15 {"Joe", "Brown",1617"Pool", new Integer(10), new Boolean(false)}18};接着表格使用这些数据和列名构造一个表格:Java代码19JTable table = new JTable(data, columnNames);有两个接收数据的JT able 构造器:∙JTable(Object[][] rowData, Object[] columnNames)∙JTable(Vector rowData, Vector columNames)这些构造函数的好处是容易实现,而缺点是:∙他们自动设置每个单元格为可编辑∙数据类型都视为一样的(字符串类型)。
一、介绍在开发过程中,我们经常会遇到需要读取Excel文件内容的情况。
而Java作为一种广泛应用的编程语言,具有丰富的库和功能,使得它成为一种很好的选择。
本文将介绍如何使用Java来获取Excel文件的内容,并将分为以下几个部分来进行讲解。
二、使用POI库进行Excel文件操作POI(Poor Obfuscation Implementation)是Apache基金会的一个开源项目,它为Java程序提供了读取和写入Microsoft Office格式文件的功能。
具体来说,POI库中的HSSF模块可以用于读取和操作Excel文件。
以下是使用POI库进行Excel文件操作的步骤。
1. 引入POI库首先需要引入POI库的相关依赖。
可以通过Maven来引入POI库,添加以下依赖到项目的pom.xml文件中即可:```xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>```2. 读取Excel文件接下来,我们可以通过POI库的相关类来读取Excel文件。
首先需要创建一个文件输入流来读取Excel文件,然后通过HSSFWorkbook类来加载文件内容,最后可以通过遍历的方式获取Excel文件的内容。
以下是一个简单的示例:```javaFileInputStream file = new FileInputStream("example.xls"); HSSFWorkbook workbook = new HSSFWorkbook(file); HSSFSheet sheet = workbook.getSheetAt(0);for (Row row : sheet) {for (Cell cell : row) {// 处理单元格的内容}}```3. 处理Excel文件内容在读取Excel文件内容后,我们可以通过POI库提供的类来处理Excel 文件的内容,比如获取单元格的值、设置单元格的值等操作。
java 通过JTable显示数据Swing中的JTable类为显示大块数据提供了一种简单的机制。
JTable有很多方法用于数据的生成和编辑,其中的很多方法还可以自定义,从而更进一步增强其功能。
在使用JTable以前,我们先看一下它的构造函数有哪些,以及应该如何使用。
JTabel构造函数:●JTable( ) 建立一个新的JTables,并使用系统默认的Model。
●JTable(int numRows,int numColumns) 建立一个具有numRows行,numColumns列的空表格,使用的是DefaultTableModel.。
●JTable(Object[][] rowData,Object[][] columnNames) 建立一个显示二维数组数据的表格,且可以显示列的名称。
●JTable(TableModel dm) 建立一个JTable,有默认的字段模式以及选择模式,并设置数据模式。
●JTable(TableModel dm,TableColumnModel cm) 建立一个JTable,设置数据模式与字段模式,并有默认的选择模式。
●JTable(TableModel dm,TableColumnModel cm,ListSelectionModel sm) 建立一个JTable,设置数据模式、字段模式、与选择模式。
●JTable(Vector rowData,Vector columnNames) 建立一个以Vector为输入来源的数据表格,可显示行的名称。
在构建JTable对象之后,可以通过一些方法来设置数据显示的样式,常见的方法如下。
1.设置JTable表格大小如果JTable的一个列或者JTable窗口的大小被重新设置后,那么其他列会被相应的缩小或者放大,以适应新的窗口。
使用setAutoResizeMode( )方法就能够控制这LUMN、AUTO_RESIZE_SUBSEQUENT_COLUMNS、AUTO_RESIZE_LAST_COL UMN和AUTO_RESIZE_ALL_COLUMNS。
java jtable用法JTable是Java Swing库中的一个组件,用于将数据以表格的形式展示出来。
JTable的用法如下:1.创建JTable对象:可以通过传入一个二维数组或者实现TableModel接口的数据模型来创建JTable对象。
2.设置表头:通过调用getTableHeader()方法获取表头对象,并设置表头的标题和样式。
3.设置表格数据:将数据设置到表格中,可以通过调用setModel()方法来设置TableModel,也可以通过调用setValueAt()方法逐个设置表格中的值。
4.设置表格样式:可以通过调用setDefaultRenderer()方法来设置单元格的渲染器,调用setDefaultEditor()方法来设置单元格的编辑器,以及调用setRowHeight()方法来设置行高等。
5.添加JTable到容器中:将JTable添加到容器中显示出来。
拓展:JTable还有一些其他常用的功能,例如:1.表格排序:可以通过调用setAutoCreateRowSorter()方法来开启表格排序功能,或者通过设置RowSorter来自定义排序规则。
2.表格选择:可以通过调用setSelectionMode()方法来设置表格的选择模式,可以选择单个单元格、单个行、多个行等。
3.表格事件:可以监听表格的事件,例如单元格的点击事件、单元格的编辑事件等,通过添加事件监听器来实现相应的逻辑处理。
4.表格导出:可以将表格中的数据导出为Excel、CSV等格式,通过调用相应的API来实现数据导出功能。
总之,JTable是一个非常强大的表格组件,可以用于展示和处理大量的数据,通过灵活的设置和拓展,可以实现各种复杂的表格功能。
java实现导出Excel(跨行跨列)在Java中,可以使用Apache POI库来实现导出Excel文件,并且可以实现跨行和跨列的功能。
Apache POI是一个开源的Java库,可以处理Microsoft Office格式的文档,包括Excel。
以下是使用Apache POI库实现导出Excel文件的步骤:1. 首先,需要引入Apache POI依赖。
可以在Maven或Gradle中添加以下依赖项:```xml<!-- Apache POI --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>2. 创建一个Workbook对象,该对象代表一个Excel文件:```javaWorkbook workbook = new XSSFWorkbook(;```3. 创建一个Sheet对象,该对象代表Excel文件中的一个工作表:```javaSheet sheet = workbook.createSheet("Sheet1");```4. 创建行和单元格,根据需要设置跨行和跨列的属性。
可以使用CellRangeAddress类来实现跨行和跨列的功能:```javaRow row = sheet.createRow(0);Cell cell = row.createCell(0);cell.setCellValue("跨行跨列");//合并单元格,从第1行到第3行,从第1列到第5列CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 2, 0, 4);sheet.addMergedRegion(cellRangeAddress);5. 将数据写入Excel文件中的单元格:```javaRow row = sheet.createRow(0);Cell cell = row.createCell(0);cell.setCellValue("Hello");```6. 将Workbook对象写入到文件中:```javaFileOutputStream fileOutputStream = new FileOutputStream("output.xlsx");workbook.write(fileOutputStream);fileOutputStream.close(;```完整的示例代码如下所示:```javaimport ermodel.*;import org.apache.poi.ss.util.CellRangeAddress;import ermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;public class ExcelExporterpublic static void main(String[] args) throws IOExceptionWorkbook workbook = new XSSFWorkbook(;Sheet sheet = workbook.createSheet("Sheet1");Row row = sheet.createRow(0);Cell cell = row.createCell(0);cell.setCellValue("跨行跨列");//合并单元格,从第1行到第3行,从第1列到第5列CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 2, 0, 4);sheet.addMergedRegion(cellRangeAddress);FileOutputStream fileOutputStream = newFileOutputStream("output.xlsx");workbook.write(fileOutputStream);fileOutputStream.close(;System.out.println("Excel文件导出成功!");}```执行该代码后,会在项目的根目录下生成一个名为`output.xlsx`的Excel文件,其中包含一个跨行和跨列的单元格。
javaswing实现数据显示的逻辑
要使用Java Swing来实现数据显示的逻辑,可以按照以下步骤进行:
1. 创建一个继承自JFrame的主窗口类,作为应用的主界面。
2. 在主窗口类中添加一个JTable组件,用来显示数据。
3. 创建一个继承自AbstractTableModel的数据模型类,用来管理表格中的数据。
4. 在数据模型类中实现必要的方法,如获取表格的行数、列数、单元格数值等。
5. 在主窗口类中实例化数据模型类,并将其设置给JTable组件。
6. 从数据源获取数据,并通过数据模型类的方法添加到表格中。
7. 可以添加其他的Swing组件,如按钮、文本框等,来实现数据的添加、删除、修改等操作。
8. 实现相应的事件监听器,以响应用户的操作。
例如,点击按钮时,执行相应的添加、删除、修改数据的操作。
9. 使用布局管理器来控制组件的布局。
可以选择合适的布局管理器来满足UI设计的需求。
10. 最后,调用setVisible(true)方法将主窗口显示出来。
这样,就可以使用Java Swing实现数据显示的逻辑了。
根据具体的需求和情况,可以根据以上步骤进行适当的修改和扩展。
Java基础编程练习题一、基本语法1. 编写一个Java程序,输出“Hello, World!”。
2. 声明一个整型变量并赋值为10,然后输出该变量的值。
3. 编写一个Java程序,实现两个整数的加、减、乘、除运算。
4. 编写一个Java程序,判断一个整数是奇数还是偶数。
5. 编写一个Java程序,交换两个变量的值。
二、控制结构1. 使用ifelse语句判断一个年份是否为闰年。
2. 编写一个Java程序,使用for循环输出1到100的所有偶数。
3. 使用while循环计算1+2+3++100的和。
4. 编写一个Java程序,使用dowhile循环输出1到10的所有整数。
5. 使用switch语句实现一个简单的计算器程序,支持加、减、乘、除四种运算。
三、数组1. 声明一个整型数组,并初始化为{1, 2, 3, 4, 5},然后输出数组中的每个元素。
2. 编写一个Java程序,计算数组中所有元素的和。
3. 实现一个方法,用于查找数组中的最大值。
4. 编写一个Java程序,将一个字符串数组按照字母顺序排序。
5. 使用二维数组输出一个5x5的乘法表。
四、字符串操作1. 编写一个Java程序,连接两个字符串。
2. 实现一个方法,判断一个字符串是否为回文。
3. 编写一个Java程序,将字符串中的所有小写字母转换为大写字母。
4. 使用StringBuilder类实现字符串的逆序输出。
5. 编写一个Java程序,计算一个字符串中某个字符出现的次数。
五、面向对象基础1. 创建一个名为Person的类,包含姓名、年龄和性别属性,并提供相应的构造方法和getter/setter方法。
2. 编写一个Java程序,实现两个Person对象的比较(按年龄比较)。
3. 创建一个Student类,继承自Person类,并添加成绩属性。
4. 编写一个Java程序,实现Student类的多态。
5. 创建一个接口Animal,包含吃、睡觉和叫三个方法,然后创建两个类Dog和Cat实现该接口。
JTable导出表格//如果表格里面有空格(即有表格没有数据)会出现空指针异常package com.ren;import java.io.File;import java.io.FileNotFoundException;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JOptionPane;import javax.swing.JTable;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Colour;import jxl.format.UnderlineStyle;import jxl.format.VerticalAlignment;import bel;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;/**** 把JTable中的数据导出到Excel表格中工具类** @author Administrator**/public class JTableToExcel {/**外部调用的方法* @param file* @param heading* @param inscribe* @param table*/public void export(File file, String heading, String inscribe, JTable table) { try {WritableWorkbook workbook = null;// 创建工作薄if (file.exists()) {// 文件已经存在workbook = Workbook.createWorkbook(file, Workbook.getWorkbook(file));} else { // 文件还不存在workbook = Workbook.createWorkbook(file);}// 创建工作表WritableSheet sheet = workbook.createSheet(heading, workbook.getNumberOfSheets());// 取得Table的行数(rowNum), 列数(colNum)int rowNum = table.getRowCount();int colNum = table.getColumnCount();// 填写主标题fillHeading(sheet, heading, colNum);// 填写列名fillColumnName(sheet, table, colNum);// 填写落款fillInscribe(sheet, inscribe, rowNum, colNum);// 填写数据fillCell(sheet, table, rowNum, colNum);// 写入工作表workbook.write();workbook.close();// 导出成功提示框int dialog = JOptionPane.showConfirmDialog(null, "统计表导出成功!是否现在打开?", "提示", JOptionPane.YES_NO_OPTION);if (dialog == JOptionPane.YES_OPTION) {Runtime.getRuntime().exec("cmd /c start \"\" \"" + file + "\"");}} catch (FileNotFoundException e) {JOptionPane.showMessageDialog(null, "导入数据前请关闭工作表");} catch (Exception e) {JOptionPane.showMessageDialog(null, "没有进行筛选");}}/*** 填写主标题* @param sheet* @param heading* @param colNum* @throws WriteException*/private void fillHeading(WritableSheet sheet, String heading, int colNum) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 创建格式化对象format.setAlignment(Alignment.CENTRE);// 水平居中显示format.setVerticalAlignment(VerticalAlignment.CENTRE);// 垂直居中显示sheet.mergeCells(0, 0, colNum - 1, 0); // 合并单元格sheet.setRowView(0, 600); // 设置行高sheet.addCell(new Label(0, 0, heading, format));// 填写工作表}/*** 填写列名* @param sheet* @param table* @param colNum* @throws WriteException*/private void fillColumnName(WritableSheet sheet, JTable table, int colNum) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.CENTRE);// 水平居中显示sheet.setColumnView(0, 15);// 设置列宽for (int col = 0; col < colNum; col++) {Label colName = new Label(col, 1, table.getModel().getColumnName(col), format);sheet.addCell(colName);}}/*** 填写落款* @param sheet* @param inscribe* @param colNum* @param rowNum* @throws WriteException*/private void fillInscribe(WritableSheet sheet, String inscribe, int rowNum, int colNum) throws WriteException {if( inscribe == null || inscribe.length() < 1 ) {inscribe = "导出时间: "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());}WritableFont font = new WritableFont(WritableFont.ARIAL, 9, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.RIGHT);// 水平居中显示sheet.mergeCells(0, rowNum+3, colNum - 1, rowNum+3);// 合并单元格sheet.addCell(new Label(0, rowNum+3, inscribe, format));// 填写工作表}/*** 填写数据* @param sheet* @param talbe* @param rowNum* @param colNum* @throws WriteException*/private void fillCell(WritableSheet sheet, JTable table, int rowNum, int colNum ) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.CENTRE); // 水平居中显示for (int i = 0; i < colNum; i++) { // 列for (int j = 1; j <= rowNum; j++) {// 行String str = table.getValueAt(j - 1, i).toString();Label labelN = new Label(i, j+1, str);try {sheet.addCell(labelN);} catch (Exception e) {e.printStackTrace();}}}}}调用:JButton button = new JButton("导出当前表格");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {FileDialog fd = new FileDialog(frame, "保存记录", FileDialog.SAVE);fd.setLocation(400, 250);fd.setVisible(true);String stringfile = fd.getDirectory()+fd.getFile()+".xls";new JTableToExcel().export(new File(stringfile), "员工信息表", "", table_2);}});button.setBounds(10, 442, 192, 23);panel_2.add(button);JTable导出表格package com.ren;import java.io.*;import javax.swing.JOptionPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import jxl.Cell;import jxl.CellType;import belCell;import jxl.NumberCell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class ExcelToJtable {// 参数为“文件”,“默认的模型”,“jtable”public void Import(File file, DefaultTableModel tableModel, JTable jTable) {Workbook rwb = null;Object[] object = new Object[jTable.getColumnCount()];try {FileInputStream is = new FileInputStream(file);rwb = Workbook.getWorkbook(is);// 创建一个workbook类读取excel文件// 得到第i个工作薄Sheet st = rwb.getSheet(0);// 这里有两种方法获取sheet表,1为名字,而为下标,从0开始// //得到st的列数// System.out.println("列"+ st.getColumns());// //得到st的行数// System.out.println("行"+ st.getRows());if (st.getRows() > 2) {//行数大于2的操作for (int t = tableModel.getRowCount() - 1; t >= 0; t--) {tableModel.removeRow(t);}// 行循环for (int i = 2; i < st.getRows(); i++) {//i=2去除表头,表头有多少行,i就等于多少// 列循环for (int j = 0; j < st.getColumns(); j++) {// 得到第j列第i行的数据Cell c00 = st.getCell(j, i);if (c00.getType() == BEL) {LabelCell labelc00 = (LabelCell) c00;object[j] = labelc00.getString();// jTable.setValueAt(labelc00.getString(), i-1, j);} else if (c00.getType() == CellType.NUMBER) {Double numd;int numi;NumberCell numc10 = (NumberCell) c00;numd = new Double(numc10.getValue());numi = numd.intValue();object[j] = numi;// jTable.setValueAt(numi, i-1, j);}}tableModel.addRow(object);}} else {//i=1去除表头,(即表头有多少行,i就等于多少)for (int i = 1; i < st.getRows(); i++) {// 列循环for (int j = 0; j < st.getColumns(); j++) {// 得到第j列第i行的数据Cell c00 = st.getCell(j, i);if (c00.getType() == BEL) {LabelCell labelc00 = (LabelCell) c00;object[j] = labelc00.getString();// jTable.setValueAt(labelc00.getString(), i-1, j);} else if (c00.getType() == CellType.NUMBER) {Double numd;int numi;NumberCell numc10 = (NumberCell) c00;numd = new Double(numc10.getValue());numi = numd.intValue();object[j] = numi;// jTable.setValueAt(numi, i-1, j);}}tableModel.addRow(object);}}/* JOptionPane.showMessageDialog(null, "导入" + file.getName() + "成功","成功", RMATION_MESSAGE);*/} catch (FileNotFoundException e) {//System.out.println("文件" + file.getName() + "没有找到");JOptionPane.showMessageDialog(null,"文件" + file.getName() + "没有找到");} catch (BiffException e) {//System.out.println("文件格式不正确");JOptionPane.showMessageDialog(null,"文件格式不正确");} catch (IOException e) {//System.out.println("文件读写失败");JOptionPane.showMessageDialog(null,"文件读写失败");} finally {// 关闭rwb.close();}}}调用:table_5 = new JTable(); //声明成全局dtm1=new DefaultTableModel(new Object[][] {}, ////声明成全局new String[] {"\u5DE5\u53F7", "\u59D3\u540D", "\u6027\u522B", "\u5E74\u9F84", "\u5165\u5382\u65F6\u95F4", "\u57FA\u672C\u5DE5\u8D44", "\u4EA7\u54C1\u7F16\u53F7", "\u751F\u4EA7\u8F66\u95F4", "\u6C11\u65CF", "\u624B\u673A", "\u751F\u4EA7\u603B\u6570", "\u4EA7\u54C1\u4EF7\u503C", "\u5DE5\u4F5C\u5929\u6570", "\u65F7\u5DE5\u5929\u6570"});table_5.getTableHeader().setReorderingAllowed(false); //表头不可以拖动table_5.setModel(dtm1 );scrollPane_7.setViewportView(table_5);JButton button_10 = new JButton("批量导入信息");button_10.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {FileDialog fd = new FileDialog(frame, "导入数据", FileDialog.LOAD);fd.setLocation(400, 250);fd.setVisible(true);String file_url = fd.getDirectory()+fd.getFile();File file=new File(file_url);new ExcelToJtable().Import(file, dtm1, table_5);table_5.setModel(dtm1 );//再次创建模型(setModel(dtm ))scrollPane_7.setViewportView(table_5);//再次获得视图//数据库添加上表数据int a1 = JOptionPane.showConfirmDialog(null, "你确认要添加以上信息?","确认", JOptionPane.OK_CANCEL_OPTION);if (a1 == JOptionPane.OK_OPTION) {new ClientMain("添加导入的数据");}else{return;}}});button_10.setBounds(441, 522, 112, 23);panel_3.add(button_10);。
javajtable用法1. 创建JTable对象:要创建一个JTable对象,可使用其构造函数之一、以下是一个示例:JTable table = new JTable(;2.设置表头:表格的第一行通常称为表头,用于显示列名。
要设置表头,可以使用JTable的getTableHeader(方法和setDefaultRenderer(方法。
下面是一个示例:JTableHeader tableHeader = table.getTableHeader(;tableHeader.setDefaultRenderer(new MyTableHeaderRenderer(); 3.添加到容器:将JTable添加到显示表格的容器中。
例如,将它添加到一个面板中:JPanel panel = new JPanel(;panel.add(table);4.设置数据模型:JTable需要一个数据模型来存储和管理表格数据。
默认情况下,JTable使用DefaultTableModel作为其数据模型。
以下是设置数据模型的示例:DefaultTableModel model = new DefaultTableModel(;table.setModel(model);5.填充表格数据:可以通过添加行和列的方式来填充表格数据。
以下是一个示例:model.addRow(new Object[]{"John Doe", "24", "Male"});model.addRow(new Object[]{"Jane Smith", "30", "Female"}); 6.选择行和列:可以使用JTable的setRowSelectionAllowed(和setColumnSelectionAllowed(方法来允许或禁止行或列的选择。
JAVAJTable的使⽤JTable是⼀个表格组件,对JTable进⾏实例化时有多种⽅式,我个⼈⽐较喜欢⽤两个链表集合进⾏传参。
实例没连数据库实例1package com.beekc.www;2import java.awt.*;3import java.util.*;4import javax.swing.*;56//继承JFrame7public class Jtable extends JFrame {89//定义组件10 JTable jTable = null;11 JScrollPane jScrollPane = null;1213//定义JTable的对象14 Vector rowData,columnNames;1516//定义⼀⾏数据的对象17 Vector line1;1819public static void main(String[] args) {20 Jtable jTable = new Jtable();21 }2223//构造函数24public Jtable()25 {26//设置表格类⽬27 columnNames = new Vector();28 columnNames.add("学号");29 columnNames.add("姓名");30 columnNames.add("籍贯");3132//设置表格数据33 rowData = new Vector();34 line1 = new Vector();35 line1.add("001");36 line1.add("孙悟空");37 line1.add("花果⼭");38 rowData.add(line1);3940 line1 = new Vector();41 line1.add("002");42 line1.add("猪⼋戒");43 line1.add("天空");44 rowData.add(line1);4546 line1 = new Vector();47 line1.add("003");48 line1.add("沙悟净");49 line1.add("⼤海");50 rowData.add(line1);5152 line1 = new Vector();53 line1.add("004");54 line1.add("唐三藏");55 line1.add("长安");56 rowData.add(line1);5758//⽣成表格59 jTable = new JTable(rowData,columnNames);60 jScrollPane = new JScrollPane(jTable);6162//添加组件63this.add(jScrollPane);6465//窗体设置66this.setTitle("学⽣管理系统");67this.setLocation(200,200);68this.setSize(280,200);69this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);70this.setVisible(true);717273 }7475 }连接数据库实例1package com.beekc.www;2import java.awt.*;3import java.sql.*;4import java.util.*;5import javax.swing.*;67//继承JFrame8public class Student extends JFrame {910//定义组件11 JTable jTable = null;12 JScrollPane jScrollPane = null;1314//定义JTable的对象15 Vector rowData,columnNames;1617//定义⼀⾏数据的对象18 Vector line1;1920//定义数据库对象21 Connection ct = null;22 PreparedStatement ps = null;23 ResultSet rs = null;2425public static void main(String[] args) {26 Student jTable = new Student();27 }2829//构造函数30public Student()31 {32//设置表格类⽬33 columnNames = new Vector();34 columnNames.add("学号");35 columnNames.add("姓名");36 columnNames.add("籍贯");3738//设置表格数据39 rowData = new Vector();4041try{42//1.加载驱动43 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");44//2.得到连接45 ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=beekc","sa","admin.."); 46//3.创建介质⽅式47 ps = ct.prepareStatement("select * from stu");4849//4.执⾏50 rs = ps.executeQuery();5152while (rs.next())53 {54 line1 = new Vector();55 line1.add(rs.getString(1));56 line1.add(rs.getString(2));57 line1.add(rs.getString(3));58 rowData.add(line1);59 }6061 }catch (Exception e){62 e.printStackTrace();63 }finally {6465 }6667//⽣成表格68 jTable = new JTable(rowData,columnNames);69 jScrollPane = new JScrollPane(jTable);7071//添加组件72this.add(jScrollPane);7374//窗体设置75this.setTitle("学⽣管理系统");76this.setLocation(200,200);77this.setSize(280,200);78this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 79this.setVisible(true);80 }81 }。
Swing中使⽤JTable动态获取数据库中的数据并显⽰笔者注:本⽂供新⼿学习使⽤,若有⼀定基础,可以直接看3!1.创建数据库:/*Navicat MySQL Data TransferSource Server : aaSource Server Version : 50519Source Host : localhost:3306Source Database : testTarget Server Type : MYSQLTarget Server Version : 50519File Encoding : 65001Date: 2017-05-05 20:59:36*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(12) DEFAULT NULL,`password` varchar(12) DEFAULT NULL,`sex` char(4) DEFAULT NULL,`age` int(11) DEFAULT NULL,`address` varchar(12) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=9DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', '李雷', '123', '男', '23', '湖北⼗堰');INSERT INTO `user` VALUES ('2', '韩梅梅', '111', '⼥', '23', '湖北⼗堰');INSERT INTO `user` VALUES ('3', '光头强', '123', '男', '22', '森林');INSERT INTO `user` VALUES ('4', '熊⼤', '111', '雄', '22', '森林');INSERT INTO `user` VALUES ('5', '喜⽺⽺', '111', '雄', '16', '青青草原⽺村');INSERT INTO `user` VALUES ('6', '美⽺⽺', '123', '雌', '16', '青青草原⽺村');INSERT INTO `user` VALUES ('7', '灰太狼', '111', '雄', '18', '青青草原狼堡');INSERT INTO `user` VALUES ('8', '红太郎', '123', '雌', '18', '青青草原狼堡');2.创建项⽬:2.1按照以下格式创建项⽬2.2导⼊mysql链接数据库jar包(jar包下载地址:)2.2.1在项⽬内新建⼀个⽂件夹lib2.2.2将jar包赋值到lib⽬录下,并添加到项⽬中(反键,如图所⽰即可)注:1.DbUtils类主要写JDBC链接数据库代码,代码如下:package com.zjl.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DbUtils {private static final String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8"; private static final String USER="root";private static final String PASSWORD="scme";//此处为数据库密码,更改为⾃⼰数据库的密码static{try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConnection() throws SQLException{return DriverManager.getConnection(URL, USER, PASSWORD);}//关闭⽅法public static void close(ResultSet rs, Statement stat, Connection conn) throws SQLException{if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}}}er类主要是储存数据的实体类,代码如下:package com.zjl.modle;public class User {private int id,age;private String name,password,sex,address;public int getId() {return id;}public void setId(int id) {this.id = id;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}erDao主要是进⾏数据操作的类,代码如下:package com.zjl.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.zjl.db.DbUtils;import er;public class UserDao {private Connection conn=null;private PreparedStatement ps=null;private ResultSet rs=null;//查询所有⽤户public List<User> queryAllUser(){String sql="select * from user";List<User> list=new ArrayList<User>();try {conn=DbUtils.getConnection();ps=conn.prepareStatement(sql);rs=ps.executeQuery();System.out.println(ps.toString());while(rs.next()){User user=new User();user.setId(rs.getInt(1));user.setName(rs.getString(2));user.setPassword(rs.getString(3));user.setSex(rs.getString(4));user.setAge(rs.getInt(5));user.setAddress(rs.getString(6));list.add(user);}} catch (SQLException e) {e.printStackTrace();}return list;}}4.Main类是显⽰数据的窗体类,代码如下:package com.zjl.view;import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.Toolkit;import java.util.List;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.border.EmptyBorder;import javax.swing.border.LineBorder;import javax.swing.table.DefaultTableModel;import erDao;import er;public class Main extends JFrame {private JPanel contentPane;private JTable table;private String head[]=null;private Object [][]data=null;private UserDao user=new UserDao();/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Main frame = new Main();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public Main() {setResizable(false);setTitle("\u673A\u7968\u9884\u8BA2\u7CFB\u7EDF");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 700, 300);Dimension us=this.getSize();Dimension them=Toolkit.getDefaultToolkit().getScreenSize();int x=(them.width-us.width)/2;int y=(them.height-us.height)/2;this.setLocation(x, y);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(0,0,700,250);table = new JTable();table.setBorder(new LineBorder(new Color(0, 0, 0)));head=new String[] {"id", "姓名", "密码", "性别", "年龄", "住址", "\u7968\u4EF7",};DefaultTableModel tableModel=new DefaultTableModel(queryData(),head){public boolean isCellEditable(int row, int column){return false;}};table.setModel(tableModel);scrollPane.setViewportView(table);GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 684, Short.MAX_VALUE));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 195, GroupLayout.PREFERRED_SIZE).addGap(66)));contentPane.setLayout(gl_contentPane);}//⽣成表格数据/*** @return*/public Object[][] queryData(){List<User> list=user.queryAllUser();data=new Object[list.size()][head.length];for(int i=0;i<list.size();i++){for(int j=0;j<head.length;j++){data[i][0]=list.get(i).getId();data[i][1]=list.get(i).getName();data[i][2]=list.get(i).getPassword();data[i][3]=list.get(i).getSex();data[i][4]=list.get(i).getAge();data[i][5]=list.get(i).getAddress();}}return data;}}3.重点代码回顾:3.1效果展⽰:3.2定义⼀个获取数据的⽅法//⽣成表格数据/*** @return*/public Object[][] queryData(){List<User> list=user.queryAllUser();data=new Object[list.size()][head.length];for(int i=0;i<list.size();i++){for(int j=0;j<head.length;j++){data[i][0]=list.get(i).getId();data[i][1]=list.get(i).getName();data[i][2]=list.get(i).getPassword();data[i][3]=list.get(i).getSex();data[i][4]=list.get(i).getAge();data[i][5]=list.get(i).getAddress();}}return data;}3.3在窗体代码中使⽤DefaultTableModle绑定数据String head[]=new String[] {"id", "姓名", "密码", "性别", "年龄", "住址"};DefaultTableModel tableModel=new DefaultTableModel(queryData(),head);table.setModel(tableModel);//JTable对象设置DefaultTableModle作为⼀个带⼤⼀⾃习的学长,我为他们写下了这篇⽂章,也将这篇⽂章送给所有学习Swing的朋友们!。
第1篇一、Java Swing基本概念1. 什么是Java Swing?答:Java Swing是一种用于创建图形用户界面的库,它是Java语言的一个扩展,允许开发者创建具有丰富视觉效果的桌面应用程序。
2. Swing的组件有哪些?答:Swing组件包括基本组件(如按钮、标签、文本框等)、容器组件(如面板、窗口、滚动条等)、特殊组件(如树、表格等)。
3. Swing与AWT的区别是什么?答:Swing是基于Java的,而AWT是基于本地平台的。
Swing组件在不同平台上表现一致,而AWT组件在不同平台上可能有所不同。
Swing运行速度较慢,但提供了更多功能和更好的用户体验。
二、Swing基本组件1. 如何创建一个按钮,并设置其文本和字体?答:使用JButton类创建按钮,并设置其文本和字体。
```javaJButton button = new JButton("按钮");button.setFont(new Font("宋体", Font.PLAIN, 12));```2. 如何获取并设置文本框中的文本?答:使用JTextField类创建文本框,并通过getText()和setText()方法获取和设置文本。
```javaJTextField textField = new JTextField();String text = textField.getText(); // 获取文本textField.setText("新文本"); // 设置文本```3. 如何使用单选按钮(JRadioButton)实现多选?答:使用JRadioButton类创建单选按钮,并使用ButtonGroup类将它们分组。
```javaJRadioButton radioButton1 = new JRadioButton("选项1");JRadioButton radioButton2 = new JRadioButton("选项2");ButtonGroup buttonGroup = new ButtonGroup();buttonGroup.add(radioButton1);buttonGroup.add(radioButton2);```4. 如何使用复选框(JCheckBox)实现多选?答:使用JCheckBox类创建复选框,它们之间互不影响。
javascript获取table数据的方法在JavaScript中获取table数据有几种方法:1. 使用DOM方法:- 使用getElementById()方法获取table元素。
- 使用getElementsByTagName()方法获取所有的tr元素。
- 循环遍历每个tr元素,使用getElementsByTagName()方法获取每个tr元素下的td元素。
- 获取td元素的文本内容。
```javascriptvar table = document.getElementById("myTable");var rows = table.getElementsByTagName("tr");for (var i = 0; i < rows.length; i++) {var cells = rows[i].getElementsByTagName("td");for (var j = 0; j < cells.length; j++) {var data = cells[j].innerHTML;console.log(data);}}```2. 使用jQuery库:- 使用选择器选择table元素。
- 使用children()方法选择tr元素。
- 循环遍历每个tr元素,使用children()方法选择td元素。
- 获取td元素的文本内容。
```javascript$("#myTable tr").each(function() {$(this).find("td").each(function() {var data = $(this).text();console.log(data);});});```以上两种方法都可以获取到table中每个单元格的文本内容。
根据需求选择使用哪种方法。
JTable是JavaSwing库的一部分,用于创建包含数据行和列的表。
它通常用于显示来自数据库或其他数据源的数据。
要使用JTable,首先需要创建一个表模型,该模型将为表提供数据。
这可以通过扩展AbstractTableModel类并实现其方法来实现。
一旦有了表模型,就可以创建JTable对象并使用setModel()方法设置模型。
然后,您可以将表添加到容器(例如JScrollPane)并在屏幕上显示它。
下面是一个使用数据创建简单表的示例:
1.String[] columnNames = {"Name", "Age", "Gender"};
2.Object[][] data = {
3. {"John", 30, "Male"},
4. {"Sara", 25, "Female"},
5. {"Mike", 35, "Male"}
6.};
7.
8.DefaultTableModel model = new DefaultTableModel(data, colum
nNames);
9.JTable table = new JTable(model);
10.J ScrollPane scrollPane = new JScrollPane(table);
11.f rame.add(scrollPane, BorderLayout.CENTER);
您可以使用许多其他属性(如列宽、行高等)自定义JTable。
java中jlist的getselectedvalueslist方法在Java的Swing库中,JList是一个常用的组件,用于显示一个列表。
它通常用于显示数据,例如菜单、对话框等。
JList支持通过鼠标选择多个项目,并且提供了getSelectedValuesList方法来获取选中的项目列表。
一、概述getSelectedValuesList方法用于获取用户通过鼠标选择的所有项目。
这个方法返回一个包含所有选中的项目的List对象。
这对于需要处理用户选择的数据的应用程序非常有用。
通过使用getSelectedValuesList方法,您可以获取用户在JList中选择的所有项目,并对其进行进一步的处理。
二、方法详解要使用getSelectedValuesList方法,首先需要确保您已经创建了一个JList对象,并且已经将一些项目添加到列表中。
然后,您可以使用getSelectedValuesList方法来获取选中的项目列表。
这个方法返回一个List对象,其中包含所有选中的项目。
例如,假设您有一个名为list的JList对象,您可以使用以下代码获取选中的项目列表:```javaList<String> selectedItems = list.getSelectedValuesList();```在这个例子中,selectedItems是一个包含所有选中的项目字符串的List对象。
您可以使用这个List对象来处理用户选择的数据。
例如,您可以将选中的项目添加到一个新的列表中,或者对选中的项目进行排序等操作。
三、注意事项在使用getSelectedValuesList方法时,请注意以下几点:1. 确保在调用getSelectedValuesList方法之前,列表已经被添加了项目并且已经有了选择。
如果列表为空或者还没有被选择任何项目,getSelectedValuesList方法将返回一个空的列表。
java直接获取数据库表字段的方法摘要:一、引言二、Java中直接获取数据库表字段的方法1.使用JDBC2.使用MyBatis3.使用Hibernate三、总结正文:一、引言在Java开发中,我们需要经常与数据库进行交互,获取表格中的数据。
直接获取数据库表字段的方法有多种,本文将介绍三种常用方法:使用JDBC、使用MyBatis和使用Hibernate。
通过对比这三种方法的优缺点,为大家在实际项目中选择合适的技术提供参考。
二、Java中直接获取数据库表字段的方法1.使用JDBCJDBC(Java Database Connectivity,Java数据库连接)是Java中访问数据库的一种标准接口。
以下是使用JDBC获取数据库表字段的示例代码:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class JDBCDemo {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "123456";try {Connection connection =DriverManager.getConnection(url, username, password);Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name");while (resultSet.next()) {// 获取字段值,例如:String field1 = resultSet.getString("column1");int field2 = resultSet.getInt("column2");double field3 = resultSet.getDouble("column3");System.out.println("字段1:" + field1);System.out.println("字段2:" + field2);System.out.println("字段3:" + field3);}resultSet.close();statement.close();connection.close();} catch (Exception e) {e.printStackTrace();}}}```2.使用MyBatisMyBatis是一个优秀的持久层框架,可以简化SQL和Java代码之间的映射关系。
java编程jtreetable用法全文共四篇示例,供读者参考第一篇示例:Java编程中,JTreeTable是一个非常常用的控件,它实现了树状结构和表格的组合,可以方便地显示具有层级关系的数据。
在实际的项目开发中,往往需要展示类似文件目录树的数据结构,这时使用JTreeTable就非常方便了。
JTreeTable不是Java标准库中的组件,但是可以通过第三方库来实现,比如SwingX和GlazedLists。
这两个库都提供了JTreeTable相关的实现,开发者可以根据自己的需求选择适合自己的库来使用。
使用JTreeTable可以让界面变得更加直观和美观,用户可以通过展开和折叠树节点来查看详细信息,同时也可以对表格进行排序、过滤和搜索等操作。
下面我们来看一下如何在Java中使用JTreeTable。
我们需要导入相应的库,比如SwingX或者GlazedLists。
然后,我们可以通过以下代码来创建一个简单的JTreeTable:```JTreeTable treeTable = new JTreeTable(dataModel);```dataModel是实现了TreeTableModel接口的类的实例,这个类负责管理树节点和表格数据之间的关联关系。
可以根据自己的需求来实现这个接口,也可以使用已有的实现类。
接着,我们可以将JTreeTable添加到一个容器中,比如JScrollPane:这样就可以在界面上显示一个带有树状结构的表格了。
用户可以通过点击树节点来展开或者折叠子节点,也可以对表格进行排序、过滤和搜索等操作。
除了基本的使用方法之外,JTreeTable还提供了许多其他功能,比如编辑单元格、自定义表头和行高、设置列宽和对齐方式等。
开发者可以根据自己的需求来进行定制,使得界面更符合实际项目的需求。
第二篇示例:Java是一种流行的编程语言,广泛用于开发各种类型的应用程序。
JTreeTable是Java Swing组件库中的一个非常有用的控件,它结合了JTree和JTable的功能,可以方便地展示树状结构的数据。
数据库操作代码:
// Load JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver ( *.mdb)};DBQ=access\\test.mdb";
Connection con = DriverManager.getConnection(dbUrl, "","");
Statement state = con.createStatemen(ResultSet.TYPE_SCROLL_SEN SITIVE,
ResultSet.CONCUR_UPDATABLE);
// 执行SQL语句
String sql = "select * from score";
ResultSet rs = state.executeQuery(sql);
displayResultSet(rs);
rs.close();
state.close();
con.close();
将数据显示在表格中:
private void displayResultSet(ResultSet rs) throws SQLEx ception {
boolean moreRecords = rs.next(); // 定位到达第一条记录
if(!moreRecords) {
JOptionPane.showMessageDialog(null, "结果集中无记录", "无记录",
RMATION_MESSA GE);
return;
}
Vector rows = new Vector();
Vector columnHeads = new Vector();
try{
ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息
for(int i = 1; i <= rsmd.getColumnCou nt(); ++i)
columnHeads.addElement(rsmd.getColumn Name(i)); // 获得列名(将列名存放至向量columnHeads)
do{
rows.addElement(getNextRow(rs, rsmd) );
}
while(rs.next()); // 利用循环获得所有记录
jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(new Dimension(383, 81));
JScrollPane scroller = new JScrollPane(jT able);// 创建带有滚动条的面板,并将表格视图加入
Container c = getContentPane(); // 获取溶器
// c.remove(2); //
// 从溶器中移除指定控件(本窗体中有二级面板有两个,第一个存放文本域及按钮,第二个存放表格视图,故移除1)
c.add(scroller, BorderLayout.CENTER); // 将面板重新加入溶器中
c.validate(); // 验证此容器及其所有子组件
} catch(SQLException e) {
e.printStackTrace();
}
}
private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
throws SQLException {
Vector currentRow = new Vector(); // 定义一个向量,用于存放记录
for(int i = 1; i <= rsmd.getColumnCount(); + +i)
currentRow.addElement(rs.getString(i)); // 获取记录
return currentRow; // 返回记录
}
以上代码实现连接access并将取出数据显示在JTable控件上……
选择JTable行:
jTable.getSelectedRow() != -1用于判断是否有选中行
(jTable.getModel().getValueAt(jTable .getSelectedRow(),
0)).toString();用于取出选择行的某单元值(0表示该行的第一列以此类推)
if (jTable.getSelectedRow() != -1) {
String ID =
(jTable.getModel().getValueAt(jTable .getSelectedRow(),
0)).toString();
//这里可以执行数据库操作
}。