没有报错,但是jtable表格显示,但是从数据库加载的数据不显示到,大佬帮忙,急

CHANGES125 2020-08-14 03:49:58

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;

public class dbtest extends JFrame {

private JPanel contentPane;
private JTable jtable1;

/**
* Launch the application.
*/
public static void fillTable(JTable table) {
try{ // column
String[] column = { "编号 ", "课程 ", "成绩 " };
DefaultTableModel defaultTableModel = new DefaultTableModel(column, 5);
String url="jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, "root", "090627");
Statement stmt = conn.createStatement();
String sql = "select * from sc ";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String userid = rs.getString("userid");
String cno = rs.getString("cno");
String grade = rs.getString("grade");
Object[] str = { userid, cno, grade };
defaultTableModel.addRow(str);
}
rs.close(); stmt.close(); conn.close();
table.setModel(defaultTableModel);
}
catch(Exception e){ JOptionPane.showMessageDialog(null, " 加载不成功!"); }

}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
dbtest frame = new dbtest();
frame.setTitle(" JTable");
dbtest.fillTable(frame.jtable1);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public dbtest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

JScrollPane scrollPane = new JScrollPane(jtable1);
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(38)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 310, GroupLayout.PREFERRED_SIZE)
.addContainerGap(78, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addContainerGap(132, Short.MAX_VALUE))
);

jtable1 = new JTable();
scrollPane.setViewportView(jtable1);
contentPane.setLayout(gl_contentPane);
}
}
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHANGES125 2020-08-14
  • 打赏
  • 举报
回复
反正用system.out输出时,没报错,但是没出数据
CHANGES125 2020-08-14
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465的回复:
[quote=引用 楼主 CHANGES125 的回复:]
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;

public class dbtest extends JFrame {

private JPanel contentPane;
private JTable jtable1;

/**
* Launch the application.
*/
public static void fillTable(JTable table) {
try{ // column
String[] column = { "编号 ", "课程 ", "成绩 " };
DefaultTableModel defaultTableModel = new DefaultTableModel(column, 5);
String url="jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, "root", "090627");
Statement stmt = conn.createStatement();
String sql = "select * from sc ";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String userid = rs.getString("userid");
String cno = rs.getString("cno");
String grade = rs.getString("grade");
Object[] str = { userid, cno, grade };
defaultTableModel.addRow(str);
}
rs.close(); stmt.close(); conn.close();
table.setModel(defaultTableModel);
}
catch(Exception e){ JOptionPane.showMessageDialog(null, " 加载不成功!"); }

}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
dbtest frame = new dbtest();
frame.setTitle(" JTable");
dbtest.fillTable(frame.jtable1);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public dbtest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

JScrollPane scrollPane = new JScrollPane(jtable1);
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(38)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 310, GroupLayout.PREFERRED_SIZE)
.addContainerGap(78, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addContainerGap(132, Short.MAX_VALUE))
);

jtable1 = new JTable();
scrollPane.setViewportView(jtable1);
contentPane.setLayout(gl_contentPane);
}
}



你定义栏的时候用的是String数组,加入数据的时候用的object数组。试试看直接输出数据的数据看看数据库调用有没有问题[/quote] 前面做登录界面的时候,用到了数据库,可以调用,但是这个拿出去输出好像不行
qq_39936465 2020-08-14
  • 打赏
  • 举报
回复
引用 楼主 CHANGES125 的回复:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;

public class dbtest extends JFrame {

private JPanel contentPane;
private JTable jtable1;

/**
* Launch the application.
*/
public static void fillTable(JTable table) {
try{ // column
String[] column = { "编号 ", "课程 ", "成绩 " };
DefaultTableModel defaultTableModel = new DefaultTableModel(column, 5);
String url="jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, "root", "090627");
Statement stmt = conn.createStatement();
String sql = "select * from sc ";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String userid = rs.getString("userid");
String cno = rs.getString("cno");
String grade = rs.getString("grade");
Object[] str = { userid, cno, grade };
defaultTableModel.addRow(str);
}
rs.close(); stmt.close(); conn.close();
table.setModel(defaultTableModel);
}
catch(Exception e){ JOptionPane.showMessageDialog(null, " 加载不成功!"); }

}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
dbtest frame = new dbtest();
frame.setTitle(" JTable");
dbtest.fillTable(frame.jtable1);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public dbtest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

JScrollPane scrollPane = new JScrollPane(jtable1);
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(38)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 310, GroupLayout.PREFERRED_SIZE)
.addContainerGap(78, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addContainerGap(132, Short.MAX_VALUE))
);

jtable1 = new JTable();
scrollPane.setViewportView(jtable1);
contentPane.setLayout(gl_contentPane);
}
}



你定义栏的时候用的是String数组,加入数据的时候用的object数组。试试看直接输出数据的数据看看数据库调用有没有问题

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧