DefaultTableModel添加数据到Jtable

public String []columnNames={"病人ID","病人姓名","病人年龄","病人性别","出生日期","出生地","籍贯","情况","费用"};//定义数组
private JScrollPane JScrollPane1=new JScrollPane();
private static JTable table;
private static  DefaultTableModel dtm;


Connection con;
	  jdbc connect=new jdbc();  //连接数据库
	  con=connect.getConnection();
	//得到用户名重的要查询的内容
	  String sql="select * from Hospital_Patient" ;  //SQL语句
     
     ResultSet rs;// 创建结果集
、
JScrollPane1.setBounds(new  Rectangle(0,50,1000,185));  //滚动条的创建
	 Jpanel.add(JScrollPane1);         //添加到面板上
	 defaultTableModel();          //调用函数
		JScrollPane1.setViewportView(table);   //可见
try{
		}catch(Exception e1){
			e1.printStackTrace();
		}
       try{
			int row = dtm.getRowCount() - 1;
			if (row != -1) {
				for (int i1 = row; i1 >= 0; i1--) {
					dtm.removeRow(i1); // 删除Jtable中的所有行
				}
				dtm.setRowCount(0); // 将Jtable中的行数设为零
			}		
			Statement stmt=con.createStatement();
		    rs=stmt.executeQuery(sql);//执行SQL语句
		    String[] data = new String[9];
			while (rs.next()) {
				for (int j = 1; j <= 9; j++) {
					data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
				}
				dtm.addRow(data); // 在Jtable中添加
			}
		    con.close();
				
}catch(Exception err){
			String error=err.getMessage();
			JOptionPane.showMessageDialog(null, error);
		    err.printStackTrace();
		}finally{
			connect.closeConnection();
		}
private void defaultTableModel() {//添加默认表格以及设置单元格不能编辑
	// TODO Auto-generated method stub
	  dtm=new DefaultTableModel(columnNames,0);  //添加首行元素数据
	  table=new JTable(dtm){
		  public boolean isCellEditable(int row, int column)
		  {
			  return false;
			  }//表格不允许被编辑 }
		  };
}

可以通过自定义 `JTable` 的单元格渲染器来实现在表格中添加按钮。下面是一个示例: ```java import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractCellEditor; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; public class ButtonInJTableExample extends JFrame { private JTable table; public ButtonInJTableExample() { setTitle("Button in JTable Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建表格数据模型 DefaultTableModel model = new DefaultTableModel(new Object[][] { { "John", new JButton("Click me") }, { "Mary", new JButton("Click me") } }, new Object[] { "Name", "Button" }); // 创建表格 table = new JTable(model); // 自定义单元格渲染器和编辑器 table.getColumn("Button").setCellRenderer(new ButtonRenderer()); table.getColumn("Button").setCellEditor(new ButtonEditor()); // 将表格添加到窗口中 getContentPane().add(new JScrollPane(table)); pack(); } public static void main(String[] args) { new ButtonInJTableExample().setVisible(true); } // 自定义单元格渲染器 private class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() { setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // 将单元格的值设置为按钮的文本 setText((value == null) ? "" : value.toString()); return this; } } // 自定义单元格编辑器 private class ButtonEditor extends AbstractCellEditor implements TableCellEditor, ActionListener { private JButton button; public ButtonEditor() { button = new JButton(); button.setOpaque(true); button.addActionListener(this); } public Object getCellEditorValue() { return button.getText(); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { button.setText((value == null) ? "" : value.toString()); return button; } public void actionPerformed(ActionEvent e) { // 处理按钮点击事件 fireEditingStopped(); } } } ``` 在这个例子中,我们创建了一个 `JTable`,其中包含了一个带有按钮的列。我们通过自定义单元格渲染器和编辑器来实现在单元格中显示和处理按钮。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值