我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上

我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上,第1张

public class T extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jPanel = null;

private JTextField jTextField = null;

private JTextField jTextField1 = null;

private JButton jButton = null;

private JButton jButton1 = null;

private JButton jButton2 = null;

private JTable jTable = null;

private DefaultTableModel tableModel = null;

private JPanel getJPanel() {

if (jPanel == null) {

JLabel jLabel1 = new JLabel();

jLabel1setBounds(new Rectangle(30, 50, 80, 25));

jLabel1setText("请输入ISBN:");

JLabel jLabel = new JLabel();

jLabelsetBounds(new Rectangle(30, 20, 80, 25));

jLabelsetText("请输入书名:");

jPanel = new JPanel();

jPanelsetLayout(null);

jPanelsetPreferredSize(new Dimension(1, 120));

jPaneladd(jLabel);

jPaneladd(jLabel1);

jPaneladd(getJTextField());

jPaneladd(getJTextField1());

jPaneladd(getJButton());

jPaneladd(getJButton1());

jPaneladd(getJButton2());

}

return jPanel;

}

private JTextField getJTextField() {

if (jTextField == null) {

jTextField = new JTextField();

jTextFieldsetBounds(new Rectangle(120, 20, 140, 25));

}

return jTextField;

}

private JTextField getJTextField1() {

if (jTextField1 == null) {

jTextField1 = new JTextField();

jTextField1setBounds(new Rectangle(120, 50, 140, 25));

}

return jTextField1;

}

private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButtonsetBounds(new Rectangle(270, 20, 60, 25));

jButtonsetText("显示");

jButtonaddActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

/ 修改处 /

}

});

}

return jButton;

}

private JButton getJButton1() {

if (jButton1 == null) {

jButton1 = new JButton();

jButton1setBounds(new Rectangle(270, 50, 60, 25));

jButton1setText("显示");

jButton1addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

/ 修改处 /

}

});

}

return jButton1;

}

private JButton getJButton2() {

if (jButton2 == null) {

jButton2 = new JButton();

jButton2setBounds(new Rectangle(240, 80, 90, 30));

jButton2setText("显示全部");

jButton2addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

/

修改处此处只要改下面一行,换成从数据库读就行

应该在DAO层加一个查询全部的方法

public List<Titles> getAll();具体实现自己写。

把114行的代码改成:List<Titles> lists = new TitleDaoImpl()getAll();

/

List<Titles> lists = Titleslist();

// 将表行数设为0行,防止异常

tableModelsetRowCount(0);

for (int i = 0; i < listssize(); i++) { // 当每有一个Titles对象就添加一行

tableModeladdRow(new Object[] {});

}

Titles instance = null;

Object obj = null;

Object name = null;

for (int i = 0; i < tableModelgetRowCount(); i++) { // 行循环

instance = listsget(i); // 为当前Titles对象赋值

for (int j = 0; j < tableModelgetColumnCount(); j++) {

name = tableModelgetColumnName(j);

if (nameequals("ISBN")) {

obj = instancegetISBN();

} else if (nameequals("title")) {

obj = instancegetTitle();

} else if (nameequals("publisher")) {

obj = instancegetPublisher();

} else if (nameequals("date")) {

obj = instancegetDate();

} else if (nameequals("price")) {

obj = instancegetPrice();

} else {

obj = "";

}

tableModelsetValueAt(obj, i, j);

}

}

}

});

}

return jButton2;

}

private JPanel getJPanel1() {

JScrollPane jScrollPane = new JScrollPane();

jScrollPanesetViewportView(getJTable());

JPanel panel = new JPanel(new BorderLayout());

paneladd(jScrollPane, BorderLayoutCENTER);

return panel;

}

private JTable getJTable() {

if (jTable == null) {

// 获得Titles类里的字段,一个字段在JTable中应该表现为一列

Field[] fields = TitlesclassgetDeclaredFields();

// 将字段名保存为列名数组为DefaultTableModel所用

Object[] columnNames = new Object[fieldslength];

for (int i = 0; i < fieldslength; i++) {

columnNames[i] = fields[i]getName();

}

tableModel = new DefaultTableModel(columnNames, 0);

jTable = new JTable(tableModel);

}

return jTable;

}

public static void main(String[] args) {

SwingUtilitiesinvokeLater(new Runnable() {

public void run() {

T thisClass = new T();

thisClasssetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

thisClasssetVisible(true);

}

});

}

public T() {

super();

setSize(580, 475);

getContentPane()add(getJPanel(), BorderLayoutSOUTH);

getContentPane()add(getJPanel1(), BorderLayoutCENTER);

}

}

jTable 不能像C#一样有数据绑定

但是你可以这样 jTableDefaultTableMode = Array[][] // 具体的记不清了

就是1个2维数组 或着一个嵌套 ArrayList

饿~~不知道你知不知道vector这个接口!!

需要三个东西!!

1首先,你需要先画jscrollPanel你只画jtable会出错!!必须有滚动条。

2在其上边画出Jtable!

3倒入import javaxswingtableDefaultTableModel;包

4倒入import javautil;包

5不知道你会写jdbc吗???要显示数据库里的东西!要写jdbc的~~

6如果写好!,实例化jdbc(db),DefaultTableModel(model)!!!

很长很长~~~~~你需要在实例化出来三个vector,分别是head,data和v(最后一个随便命名!)

然后写一条sql去查询数据库!将查找出来的数据放入vector v中,再将v放入vector data中。然后将data和head放入modelsetDataVector(data, head);必须先放data再放head!!最后将model放入到Jtable中!!

再在最前边的主函数里调用这个东西!!去刷新jtable 就行!!

你先研究~~有什么不会的再问我吧!!呵呵~~~我的qq:14824989

过程如下:

1、建立按钮的事件响应方法,调用以下代码功能:

2、通过JDBC或其它方式连接数据库,执行查询,获取结果

3、将返回结果转换为一个二维数组,作为参数创建JTable

当然要功能更完善,以上方法有很多方面需要考虑和修改,如进行模块划分、使用TableModel而不是数组显示JTable、表头的显示等,这些需要根据目的逐个改进,但大体过程基本一样。

1、windowOpened()这个窗体触发事件,

2、建立一个数据显示方法,然后可以调用这个方法,把数据添加到数据库里面,然后再调用这个方法,就可以实现刷新显示的功能了

3、构建一个数据库连接类,最好是PUBLIC

STATIC的,这样可以直接调用到

例:PUBLIC

STATIC

CONNECTION

CONN(){

数据库连接

return

返回值;

}

4、遵守代码书写规范

以上就是关于我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上全部的内容,包括:我用JAVA的swing创建了一个窗口程序,拖了一个jTable控件在窗体上,怎样把数据库中的内容显示在Table上、jTable如何绑定数据库显示数据、从数据库中查询出数据怎么显示到JTable里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/10138310.html

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

发表评论

登录后才能评论

评论列表(0条)

保存