jtable 熟悉的人进 一个JTable,初始显示为10行(是空行).现在想要把一条记录插入JTable中,并且满足: 1.每次插入的记录要放入JTable的顶端; 2.当插入的记录小于10条时,JTable的行数保持不变,记录超过10条时,JTable的行数才可以相应的增加. 大概需要怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把数据做成类的属性,把该类的实例保存到 list 中 。然后再TableModel里面setValueAt(),行数随list.size()变化。 问题1.从list的最后一个往前读。 2.public int getRowCount() { if(list.size()<=10){ return 10; }else{return list.size();} }你试试。。 自己设计model如DefaultTableModel model = new DefaultTableModel(new java.lang.Object [][] { }, new String [] { "学号", "名字", "性别", "C 语言成绩", "Java成绩", "英语", "分布式成绩" }); jTableContent.setModel(model); jScrollPane1.setViewportView(jTableContent);当插入的记录小于10条时,JTable的行数保持不变,记录超过10条时,JTable的行数才可以相应的增加.这些你都可以在model中完成,model.addRow等方法 创建table:DefaultTableModel model = new DefaultTableModel(new Object[] { "column1", "column2" }, 10) { @Override public int getRowCount() { if (dataVector.size() <= 10) { return 10; } else { return dataVector.size(); } } }; JTable table = new JTable(model);插入新行到表格最开始:model.insertRow(0, new Object[] {"1", "2"}); 刚才那代码有问题,下面给个测试通过的代码:/** * JTableDemo.java * * Created at 2008-4-19 下午12:28:41 */package demo.jxl;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;/** * @author icechen * */public class JTableDemo extends JPanel { private DefaultTableModel model; private JTable table; public JTableDemo() { super(new BorderLayout()); model = new DefaultTableModel(new Object[] { "column1", "column2", "column3" }, 10) { @Override public void insertRow(int row, Vector rowData) { super.insertRow(row, rowData); Vector lastRowData = (Vector) dataVector.elementAt(dataVector.size() - 1); if (lastRowData == null || lastRowData.elementAt(0) == null) { removeRow(dataVector.size() - 1); } } }; table = new JTable(model); JButton button = new JButton("insert to first row"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { model.insertRow(0, new Object[] { "1", "2", "3" }); } }); add(button, BorderLayout.PAGE_START); add(new JScrollPane(table), BorderLayout.CENTER); } private static void createAndShowGUI() { JFrame frame = new JFrame("demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new JTableDemo(), BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } /** * @param args */ public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); }} 另外做如下修改可以看到显著的效果:第一列显示的内容就是你操作的次数:button.addActionListener(new ActionListener() { private int count; public void actionPerformed(ActionEvent e) { model.insertRow(0, new Object[] { ++count, "2", "3" }); } }); 初学java,Scanner问题 求运行JAVA语言的最佳方法?? 关于异常程序,不太理解 刚学java,有个小问题 大家有什么好的文档管理工具?比如变来变去的需求文档? 如何指定xml解析器? 没事的进来溜溜~一个小题 一个简单的问题。书后的练习题 我读数据库中的二进制数据时,为什么不能关呢? 求救,内存占用超标,有没有办法降低内存占用? JDK 1.6 Calendar相关的疑问 (:一题Java基础问题:)~~~~~~~~
if(list.size()<=10){
return 10;
}else{return list.size();}
}你试试。。
如DefaultTableModel model = new DefaultTableModel(new java.lang.Object [][] { },
new String [] {
"学号", "名字", "性别", "C 语言成绩", "Java成绩", "英语", "分布式成绩"
});
jTableContent.setModel(model);
jScrollPane1.setViewportView(jTableContent);当插入的记录小于10条时,JTable的行数保持不变,记录超过10条时,JTable的行数才可以相应的增加.
这些你都可以在model中完成,model.addRow等方法
"column1",
"column2" }, 10) { @Override
public int getRowCount() {
if (dataVector.size() <= 10) {
return 10;
} else {
return dataVector.size();
}
} };
JTable table = new JTable(model);
插入新行到表格最开始:model.insertRow(0, new Object[] {"1", "2"});
* JTableDemo.java
*
* Created at 2008-4-19 下午12:28:41
*/
package demo.jxl;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;/**
* @author icechen
*
*/
public class JTableDemo extends JPanel {
private DefaultTableModel model; private JTable table; public JTableDemo() {
super(new BorderLayout());
model = new DefaultTableModel(new Object[] {
"column1",
"column2",
"column3" }, 10) { @Override
public void insertRow(int row, Vector rowData) {
super.insertRow(row, rowData);
Vector lastRowData = (Vector) dataVector.elementAt(dataVector.size() - 1);
if (lastRowData == null
|| lastRowData.elementAt(0) == null) {
removeRow(dataVector.size() - 1);
} }
};
table = new JTable(model); JButton button = new JButton("insert to first row");
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
model.insertRow(0, new Object[] {
"1",
"2",
"3" });
} });
add(button, BorderLayout.PAGE_START);
add(new JScrollPane(table), BorderLayout.CENTER);
} private static void createAndShowGUI() {
JFrame frame = new JFrame("demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JTableDemo(), BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
} /**
* @param args
*/
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() {
createAndShowGUI();
} });
}}
private int count; public void actionPerformed(ActionEvent e) {
model.insertRow(0, new Object[] {
++count,
"2",
"3" });
} });