JTable tbl; Object data[][]; Object title[] = {"学号","姓名","性别","年龄","出生日期","家庭地址","联系电话","邮箱"}; final int ROW = 9, COL = 8; JPanel p; data = new Object[ROW][COL]; for (int i = 0; i < ROW; i++) for (int j = 0; j < COL; j++) data[i][j] = ""; tbl = new JTable(data, title); tbl.setRowHeight(20); p = new JPanel(); p.add(new JLabel("学生基本信息")); private JTable tbl; private Object data[][]; private Object title[] = {"学号","姓名","性别","年龄","出生日期","家庭地址","联系电话","邮箱"}; private final int ROW = 9, COL = 8; private JPanel p1, p2; public Student() { super("学生信息系统"); data = new Object[ROW][COL]; for (int i = 0; i < ROW; i++) for (int j = 0; j < COL; j++) data[i][j] = ""; tbl = new JTable(data, title); tbl.setRowHeight(20); p1 = new JPanel(); p2 = new JPanel(); p1.add(new JLabel("学生基本信息")); getContentPane().add(p1, BorderLayout.NORTH); getContentPane().add(p2, BorderLayout.SOUTH); getContentPane().add(new JScrollPane(tbl), BorderLayout.CENTER); setLocationRelativeTo(null); setSize(1000, 500); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); validate(); }
时间: 2024-04-28 16:24:33 浏览: 80
这是一个简单的Java Swing程序,它创建了一个带有表格的窗口,并显示了学生的基本信息。程序中使用了JTable来显示表格数据,使用了JPanel来布局窗口中的组件。
程序中使用了以下重要的组件和类:
- JTable:用于显示表格数据。
- JPanel:用于布局窗口中的组件。
- JScrollPane:用于将JTable组件包含在可滚动的视图中。
程序中定义了一个二维数组data来存储表格数据,以及一个一维数组title来存储表格列的标题。在构造函数中,程序使用这些数据来创建一个JTable组件,并设置其行高。然后,程序创建了两个JPanel组件,其中一个用于显示标题,另一个用于放置其他组件。最后,程序将JTable组件包含在JScrollPane中,并将其添加到窗口中。
这个程序只是一个简单的示例,你可以根据自己的需要进行修改和扩展。例如,你可以将数据从二维数组中提取出来,并从数据库或其他数据源中读取。你还可以添加其他组件,例如按钮和文本框,以便用户可以添加、编辑和删除数据。
相关问题
逐句分析public class QueryJPanel extends JPanel implements ActionListener { Object[] columnName = {"学号","姓名","年龄", "专业"}; Object[][] data; private JButton chaxun=new JButton("查询"); private JTable table=new JTable(); public QueryJPanel() { this.add(chaxun); JScrollPane sp=new JScrollPane(table); this.add(sp); chaxun.addActionListener(this); }
这是一段Java代码,根据语法可以分析出以下内容:
- 定义了一个名为QueryJPanel的类,继承自JPanel类,并实现了ActionListener接口。
- 定义了一个名为columnName的Object数组,数组中包含四个字符串元素:"学号"、"姓名"、"年龄"、"专业"。
- 定义了一个名为data的Object二维数组,用于存储查询结果数据。
- 定义了一个私有的JButton类型的变量chaxun,用于触发查询操作。
- 定义了一个私有的JTable类型的变量table,用于展示查询结果。
- 定义了一个构造函数,用于初始化界面和组件。
- 在构造函数中,将chaxun按钮和table表格添加到界面中,并为chaxun按钮添加了一个ActionListener监听器。
检查以下代码。while (rs.next()) { count++; } Object[][] info = new Object[count][6]; String[] title = { "学号", "姓名", "出生日期", "性别", "专业", "宿舍楼" }; count = 0; while (rs.next()) { info[count][0] = rs.getString("sno"); info[count][1] = rs.getString("sname"); info[count][2] = rs.getString("sbirth"); info[count][3] = rs.getString("ssex"); info[count][4] = rs.getString("sclass"); info[count][5] = rs.getString("saddress"); count++; } JTable table = new JTable(info, title); contentPane.add(new JScrollPane(table), BorderLayout.CENTER); validate();
这段代码的问题在于第二个 while 循环,因为在第一个 while 循环中已经遍历了 ResultSet 中的所有数据行,所以在第二个 while 循环中 rs.next() 不会再返回任何数据行,导致 info 数组中的数据全部为 null。
为了解决这个问题,可以将第二个 while 循环中的代码合并到第一个 while 循环中,如下所示:
```
while (rs.next()) {
count++;
info[count-1][0] = rs.getString("sno");
info[count-1][1] = rs.getString("sname");
info[count-1][2] = rs.getString("sbirth");
info[count-1][3] = rs.getString("ssex");
info[count-1][4] = rs.getString("sclass");
info[count-1][5] = rs.getString("saddress");
}
```
这样就可以正确地将 ResultSet 中的数据保存到 info 数组中了。
阅读全文
相关推荐










