try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/BOA","root","");
st=con.createStatement();
String sql=("select gbal from GeneralLedger where group='Capital'");
rs=st.executeQuery(sql);
while(rs.next())
{
Vector row=new Vector();
row.add("Capital");
row.add("");
row.add("1");
row.add("Fixed Assets");
row.add("");
row.add("7");
data.add(row);
}
}
catch(Exception e)
{
System.out.println(e);
}
我成功地从数据库中获取记录并存储在我的JTable
中,但不知道如何在JTable
中的每条记录后添加空行?
任何人都可以建议我吗?
答案 0 :(得分:2)
defaultTableModel.addRow(new Object[] {});
怎么样,假设 使用DefaultTableModel
。你应该使用某种模型。如果您有自定义模型,请将其显示给我们。
以下是DefaultTableModel
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class TestTable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
String[][] data = { { "Data", "Data" } };
String[] col = { "Col", "Col" };
final DefaultTableModel model = new DefaultTableModel(data, col);
JTable table = new JTable(model);
JButton addRow = new JButton("Add Empty Row");
addRow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
model.addRow(new Object[] {});
}
});
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JScrollPane(table));
panel.add(addRow, BorderLayout.SOUTH);
JOptionPane.showMessageDialog(null, panel);
}
});
}
}
如果您没有使用模型的经验,请参阅How to Use Tables: Creating a TableModel
编辑新评论并修改
您需要做的就是每次添加新行时添加一个emtpy Vector
。