gpt4 book ai didi

java - 动态设置 JTable 中的值

转载 作者:行者123 更新时间:2023-12-01 11:58:04 25 4
gpt4 key购买 nike

我想创建一个 JTable,其中“分析”、“日期”和“价格”列的名称。分析和价格的值是从我的数据库中的数据库中恢复的,而日期则获取当天的值。

我创建了一个 MyModel 类,如下所示:

package com.pack.classes;

import java.util.LinkedList;

import javax.swing.table.AbstractTableModel;

import com.pack.beans.MyElement;

@SuppressWarnings("serial")
public class MyModel extends AbstractTableModel {

public static final String[] columnNames = {"Analyse", "Date d'analyse","Prix"};
private final LinkedList<MyElement> list;

public MyModel() {
list = new LinkedList<MyElement>();
}

public void addElement(MyElement e) {
// Adds the element in the last position in the list
list.add(e);
fireTableRowsInserted(list.size()-1, list.size()-1);
}

@Override
public int getColumnCount() {
return columnNames.length;
}

@Override
public int getRowCount() {
return list.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex) {
case 0: return list.get(rowIndex).getAnalysis();
case 1: return list.get(rowIndex).getDate();
case 2: return list.get(rowIndex).getPrice();
}
return null;
}

}

我创建了一个 Bean MyElement,如下所示:

package com.pack.beans;

import java.util.Date;

public class MyElement {

String analysis;
Date date;
Double price;

public String getAnalysis() {
return analysis;
}
public void setAnalysis(String analysis) {
this.analysis = analysis;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}

}

这是我使用该类的一段代码:

String sql = "Select name,number_b from analysis_tab  where  name ='" + idclicked + "'";
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();
System.out.println(dateFormat.format(date));
PreparedStatement preparestate = database.con.prepareStatement(sql);
ResultSet rs = preparestate.executeQuery();
MyModel mymodel = new MyModel();
String [] value = mymodel.columnNames;

MyElement e = new MyElement();
//e.setAnalysis(name);
e.setDate(date);
//e.setPrice("number_b");

结果我得到了一个包含 3 列“A”、“B”和“C”的表格。我不知道这些名字是怎么来的!!!你应该告诉我如何将我的列名“Analyse”、“Date d'analysis”、“Prix”作为表中的标题吗?我走在正确的道路上吗?

最佳答案

为什么不使用 DefaultTableModel ?它比仅使用 jtable 更强大。

//插入列名

defaultTableModel.setColumnIdentifiers(new String[]{"Analyse", "Date d'analyse","Prix"});

而且..你的sql是语句类型!如果可以的话,更改 sql 样式,如下所示。

String sql = "Select name,number_b from analysis_tab  where  name ='" + idclicked + "'";

=>

String sql = "Select name,number_b from analysis_tab  where  name = ?"
PreparedStatement preparestate = database.con.prepareStatement(sql);
pstmt.setString(1, idclicked);
rs = pstmt.executeQuery();

检查“PreparedStatement”和“Statement”! :)

关于java - 动态设置 JTable 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28275181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com