java语言中,如何在同一个窗体的两个面板中分别创建一个空表格、一个有数据的表格。

java语言中,如何在同一个窗体的两个面板中分别创建一个空表格、一个有数据的表格。,第1张

效果图

面板中放入2个表格, 可以有多种实现方式, 比如表格布局1行2列, 或者绝对布局

我使用JSplitPane 分割面板来实现

参考代码如下

import java.util.Arrays

import java.util.Vector

import javax.swing.BorderFactory

import javax.swing.JFrame

import javax.swing.JScrollPane

import javax.swing.JSplitPane

import javax.swing.JTable

import javax.swing.table.DefaultTableModel

public class FrameDemo extends JFrame {

public FrameDemo() {

JSplitPane jsp = new JSplitPane()

jsp.setOrientation(JSplitPane.HORIZONTAL_SPLIT)// 设置分割线方向

// 表格数据模型

DefaultTableModel model = new DefaultTableModel()

model.addColumn("姓名", new Vector<String>())

model.addColumn("分数", new Vector<Integer>())

JTable t1 = new JTable(model)// 创建表格,并添加模型

JScrollPane jp1 = new JScrollPane(t1)

jp1.setBorder(BorderFactory.createTitledBorder("无数据表格"))// 设置标题边框

jsp.setLeftComponent(jp1)

DefaultTableModel model2 = new DefaultTableModel()

model2.addColumn("姓名", new Vector<String>(Arrays.asList("张三", "李四", "王五")))

model2.addColumn("分数", new Vector<Integer>(Arrays.asList(90, 87, 65)))

JTable t2 = new JTable(model2)

JScrollPane jp2 = new JScrollPane(t2)

jp2.setBorder(BorderFactory.createTitledBorder("有数据表格"))

jsp.setRightComponent(jp2)

add(jsp)

setTitle("测试窗口")

setDefaultCloseOperation(EXIT_ON_CLOSE)

setSize(400, 300)

setLocationRelativeTo(null)

setVisible(true)

jsp.setDividerLocation(0.5)// 分隔面板 平均分配

}

public static void main(String[] args) {

new FrameDemo()

}

}

你数据库会连接吗?假设你会,参照下面的代码:

private static Connection getConnection()

{

.......//这里是连接数据库的代码,返回一个Connection对象。要按实际的数据库写。

}

…………

Connection conn=getConnection()

DefaultTableModel model=new DefaultTableModel()

JTable jTable=new JTable()

jTable.setModel(model)

try

{

Statement st=conn.createStatement()

String sql="select * from user"//假设要读的数据库表为user

ResultSet results=st.executeQuery(sql)

ResultSetMetaData metaData=results.getMetaData()

String[] headerData=new String[metaData.getColumnCount()]

for(int i=1i<metaData.getColumnCount()i++)

{

headerData[i-1]=metaData.getColumnName(i)

model.addColumn(headerData[i-1])

}

while(results.next())//假设表结构是这样的:id int,name varchar(12)

{

int id=results.getInt("id")

String name=results.getString("name")

model.addRow(new Object[]{id,name})

}

}

catch(Exception e){}

代码大致如上。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11699460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存