知识大全 Swing之JTable运用线程一个测试
Posted 知
篇首语:愚昧从来没有给人带来幸福;幸福的根源在于知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Swing之JTable运用线程一个测试相关的知识,希望对你有一定的参考价值。
Swing之JTable运用线程一个测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
import javax swing *;import javax swing table DefaultTableModel;import sun java swing plaf windows WindowsClassicLookAndFeel;import java awt *;import java util Vector;/** * 测试JTable添加数据 删除数据频繁操作 JTable出现数组越界的处理 * 在工作中如果遇到频繁的操作Jtable的数据 特别是速率很快的情况下 经常会遇到 * Exception in thread AWT EventQueue java lang ArrayIndexOutOfBoundsException * 这样的数组越界的异常 这里引入Swing的一个线程 能很好的解决这个问题 * 供同样遇到这样问题的人参考 * @author 蒋家狂潮 * email: * */public class ThreadTable extends JTable private DefaultTableModel model;
static String[] header = new String[] id name sex age ;
public ThreadTable() model = new DefaultTableModel(header ); this setModel(model);
public void deleteRows(int rowCount) throws Exception if (rowCount >= model getColumnCount()) throw new Exception( 删除的行数不能超过model的总行数! ); else for (int i = rowCount ; i >= ; i ) model removeRow(i);
public void testInsertValue() final Vector<String> value = new Vector<String>(); value add( ); value add( simon ); value add( boy ); value add( );
Thread thread = new Thread() public void run() for (int i = ; i < ; i++) //addValueWithThread(value);//这个方法不会出现越界 addValueWithoutThread(value);//这个方法会出现越界 差别就在于加入一个线程 try sleep( ); catch (InterruptedException e) // TODO Auto generated catch block e printStackTrace(); ; thread start(); /** * 将添加记录和删除记录在一个线程里走 不会出现页面刷新的时候 数组越界的问题 * @param value */ public void addValueWithThread(final Vector value) Thread thread = new Thread() public void run() Runnable runnable = new Runnable() public void run() model addRow(value); if (model getRowCount() > ) try deleteRows( ); catch (Exception e) // TODO Auto generated catch block e printStackTrace(); ; SwingUtilities invokeLater(runnable); ; thread start(); /** * 这样一边添加记录 一边删除记录 会出现数组越界的情况 * @param value */ public void addValueWithoutThread(final Vector value) model addRow(value); if (model getRowCount() > ) try deleteRows( ); catch (Exception e) // TODO Auto generated catch block e printStackTrace(); public static void main(String[] args) try UIManager setLookAndFeel(new WindowsClassicLookAndFeel()); catch (UnsupportedLookAndFeelException e) // TODO Auto generated catch block e printStackTrace();
JFrame f = new JFrame(); f getContentPane() setLayout(new BorderLayout());
ThreadTable table = new ThreadTable(); JScrollPane scroll = new JScrollPane(table); f getContentPane() add(scroll BorderLayout CENTER);
f setSize( ); f setLocation( ); f setVisible(true);
cha138/Article/program/Java/hx/201311/26420相关参考
Swing多线程编码过程中的误区 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
Java开发中的线程安全选择与Swing 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Swin
JavaSwing多线程死锁问题解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在基于Jav
JavaSwing开发中的线程安全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SwingAP
知识大全 关于JAVA多线程并发synchronized的测试与合理使用
关于JAVA多线程并发synchronized的测试与合理使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
JFC/Swing活学活用之定制JList显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 作
Java拖放文件到Swing窗口 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 经过测试是没有问
JavaSwing中三种事件处理方法之比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Swi
/*@authorshijin*生产者与消费者模型中要保证以下几点*同一时间内只能有一个生产者生产 生产方法加锁sychronized*同一时间内只能
Java多线程编程基础之线程和多线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 随着计算机技