有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在JTable中动态设置值

我想创建一个JTable,其中“Analysis”、“Date”和“Price”列的名称。 分析值和价格从我的数据库中的数据库中恢复,日期得到当天的值

我创建了一个类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”的表。我不知道这些名字是怎么来的!!! 您能告诉我如何将我的列名称“analysis”、“dated'analysis”、“Prix”作为表格的标题吗?我走对了吗


共 (1) 个答案

  1. # 1 楼答案

    你为什么不使用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();
    

    检查“准备的报表”和“报表”!:)