知识大全 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多线程编码过程中的误区

Swing多线程编码过程中的误区  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 Java开发中的线程安全选择与Swing

Java开发中的线程安全选择与Swing  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Swin

知识大全 Java Swing多线程死锁问题解析

JavaSwing多线程死锁问题解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在基于Jav

知识大全 Java Swing开发中的线程安全

JavaSwing开发中的线程安全  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SwingAP

知识大全 关于JAVA多线程并发synchronized的测试与合理使用

关于JAVA多线程并发synchronized的测试与合理使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 JFC/Swing活学活用之定制JList显示

JFC/Swing活学活用之定制JList显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作

知识大全 Java拖放文件到Swing窗口

Java拖放文件到Swing窗口  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经过测试是没有问

知识大全 Java Swing 中三种事件处理方法之比较

JavaSwing中三种事件处理方法之比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Swi

知识大全 java多线程之消费者生产者模式

  /*@authorshijin*生产者与消费者模型中要保证以下几点*同一时间内只能有一个生产者生产    生产方法加锁sychronized*同一时间内只能

知识大全 Java多线程编程基础之线程和多线程

Java多线程编程基础之线程和多线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着计算机技