swing中jTable的数据动态添加效果
2009-11-25 23:25
337 查看
swing中jTable的数据动态添加效果
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package login.frame;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//import org.refworld.narcotics.map;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 wenliang
*/
public class Jtable extends JFrame implements ActionListener, Runnable {
private JButton bt1, bt2, bt3;
private JScrollPane jspane;
private JTable table;
private JPanel btnPanel, mainPanel;
private DefaultTableModel model;
int a = 0;
int b = 1;
public Jtable() {//构造方法
initComponents();
this.getContentPane().add("Center", mainPanel);
this.setSize(600, 300);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
private void initComponents() {//构造面板
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
model = new DefaultTableModel(new Object[][]{{"原始列", "原始列", "原始列"},
{"原始列", "原始列", "原始列"}, {"原始列", "原始列", "原始列"}},
new String[]{"表头1", "表头2", "表头3"});
table = new JTable(model);
jspane = new JScrollPane(table);
bt1 = new JButton("加到第一行前");
bt2 = new JButton("追加到最后一行");
bt3 = new JButton("追加到当前行前");
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
btnPanel = new JPanel(new GridLayout(1, 3));
btnPanel.add(bt1);
btnPanel.add(bt2);
btnPanel.add(bt3);
mainPanel = new JPanel(new BorderLayout(10, 10));
mainPanel.add("Center", jspane);
mainPanel.add("South", btnPanel);
}
public void actionPerformed(ActionEvent e) {
Thread thread = new Thread(this);
thread.start();
Object object = e.getSource();
if (object == bt1) { // 最加到第一行
model.insertRow(0, new Object[]{"追加列_0", "追加列_0", "追加列_0"});
} else if (object == bt2) {// 追加到最后行
} else if (object == bt3) {// 追加到当前行前
if (table.getSelectedRow() != -1) {
model.insertRow(table.getSelectedRow(), new Object[]{
"追加列_0_0_0", "追加列_0_0_0", "追加列_0_0_0"});
}
}
}
/**
* 测试MAIN方法已注释掉.....
* @param args
*/
public static void main(String args[]) {//main 方法
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Jtable jtable = new Jtable();
jtable.setVisible(true);
}
});
}
public void run() {
// TODO Auto-generated method stub
while (true) {
model.insertRow(model.getRowCount(), new Object[]{"追加列_0_0",
"追加列_0_0", "追加列_0_0"});
// System.out.println(model.getRowCount());
table.updateUI(); // 刷新
System.out.println("刷新了一次" + a);
a++;
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package login.frame;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//import org.refworld.narcotics.map;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 wenliang
*/
public class Jtable extends JFrame implements ActionListener, Runnable {
private JButton bt1, bt2, bt3;
private JScrollPane jspane;
private JTable table;
private JPanel btnPanel, mainPanel;
private DefaultTableModel model;
int a = 0;
int b = 1;
public Jtable() {//构造方法
initComponents();
this.getContentPane().add("Center", mainPanel);
this.setSize(600, 300);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
private void initComponents() {//构造面板
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
model = new DefaultTableModel(new Object[][]{{"原始列", "原始列", "原始列"},
{"原始列", "原始列", "原始列"}, {"原始列", "原始列", "原始列"}},
new String[]{"表头1", "表头2", "表头3"});
table = new JTable(model);
jspane = new JScrollPane(table);
bt1 = new JButton("加到第一行前");
bt2 = new JButton("追加到最后一行");
bt3 = new JButton("追加到当前行前");
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
btnPanel = new JPanel(new GridLayout(1, 3));
btnPanel.add(bt1);
btnPanel.add(bt2);
btnPanel.add(bt3);
mainPanel = new JPanel(new BorderLayout(10, 10));
mainPanel.add("Center", jspane);
mainPanel.add("South", btnPanel);
}
public void actionPerformed(ActionEvent e) {
Thread thread = new Thread(this);
thread.start();
Object object = e.getSource();
if (object == bt1) { // 最加到第一行
model.insertRow(0, new Object[]{"追加列_0", "追加列_0", "追加列_0"});
} else if (object == bt2) {// 追加到最后行
} else if (object == bt3) {// 追加到当前行前
if (table.getSelectedRow() != -1) {
model.insertRow(table.getSelectedRow(), new Object[]{
"追加列_0_0_0", "追加列_0_0_0", "追加列_0_0_0"});
}
}
}
/**
* 测试MAIN方法已注释掉.....
* @param args
*/
public static void main(String args[]) {//main 方法
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Jtable jtable = new Jtable();
jtable.setVisible(true);
}
});
}
public void run() {
// TODO Auto-generated method stub
while (true) {
model.insertRow(model.getRowCount(), new Object[]{"追加列_0_0",
"追加列_0_0", "追加列_0_0"});
// System.out.println(model.getRowCount());
table.updateUI(); // 刷新
System.out.println("刷新了一次" + a);
a++;
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
相关文章推荐
- java JTable中动态添加、增加一行数据
- vue+ElementUI实现订单页动态添加产品数据效果实例代码
- Swing编程之 如何在JTable中添加数据
- swing 动态添加Jtable(动态添加Jcombobox机制一样)
- java之swing中Jtable的动态一列中的每行的Jcombobox显示不一样的数据
- Java 动态向 JTable 中添加数据
- 动态添加布局增添动画过渡效果
- ASP.NET2.0中给GridView动态添加模板列并自动绑定数据
- 向MSHFlexGrid控件中动态添加数据库数据
- datagridview 数据动态添加
- javascript动态添加表格数据行(ASP后台数据库保存例子)
- C#中使用ListView动态添加数据不闪烁
- sql编程 存储过程 之动态添加数据库表列并更新数据库表数据
- GridView中 对数据编辑打开一个新页面 & 动态添加控件并获取其值
- highcharts插件动态添加数据(图表内容)
- dropdownlist的动态绑定数据然后怎么添加默认项“请选择”或空值
- Android 实现View中添加子元素的动态效果
- flex图表数据动态更新效果示例
- android动态添加删除布局,并且带有动画效果,点击可以展开布局
- 动态向table添加数据