当前位置:  技术问答>java相关

关于JTable的单元格闪动的问题。

    来源: 互联网  发布时间:2015-05-10

    本文导语:  在我写的程序里,要求server定时发数据到client并显示到JTable里。 因为server端变化的数据不是很多,所以每次传的数据只是变化了的数据。 现在已经做到可以把变化的数据传到client并显示出来。 但还要求,在JTable里...

在我写的程序里,要求server定时发数据到client并显示到JTable里。

因为server端变化的数据不是很多,所以每次传的数据只是变化了的数据。

现在已经做到可以把变化的数据传到client并显示出来。

但还要求,在JTable里变化了的数据,闪动一下。以提醒客户,哪个数值变化了。

不知道这个功能该怎么实现?

我一点思路都没有。


|
看符不符合你的要求, 剩下的自己应该可以搞定吧. :)

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.table.*;

 
public class Test extends JFrame
{

    public Test(String s)
    {
super(s);
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(400, 300));
setVisible(true);
    }

    MyRenderer myRenderer;
    JTable table;
    JScrollPane scroller;
    javax.swing.Timer timer;

    String[] header = {"C1", "C2", "C3"};
    String[][] data = 
    {
{"0, 0", "1, 0", "2, 0"},
{"0, 1", "1, 1", "2, 1"}
    };

    private void init()
    {
MyModel model = new MyModel(data, header);
table = new JTable(model);
myRenderer = new MyRenderer();
table.setDefaultRenderer(String.class, myRenderer);
scroller = new JScrollPane(table);
getContentPane().add(scroller);
timer = new javax.swing.Timer(500, getAction());
timer.start();
    }

    private Action getAction()
    {
return new AbstractAction()
{
    public void actionPerformed(ActionEvent e)
    {
myRenderer.toggleFlashed();
System.err.println("toggle");
table.repaint();
    }
};
    }

    class MyModel extends DefaultTableModel
    {
public MyModel(String[][] data, String[] header)
{
    super(data, header);
}

public Class getColumnClass(int columnIndex)
{
    return String.class;
}
    }

    class MyRenderer extends DefaultTableCellRenderer
    {
private JLabel label = new JLabel();
private boolean flashed;

public MyRenderer()
{
    label = new JLabel();
    label.setOpaque(true);
    label.setBackground(Color.blue);
    flashed = false;
}

public boolean isFlashed()
{
    return flashed;
}

public void toggleFlashed()
{
    flashed = !flashed;
}

public Component getTableCellRendererComponent(JTable table,  Object value, 
       boolean isSelected, boolean hasFocus, 
       int row, int column)
{
    if (flashed && row == 1 && column == 1)
    {
label.setText(value.toString());
System.err.println("OKOK");
return label;
    }
    else
    {
return super.getTableCellRendererComponent(table, value, 
   isSelected, hasFocus, 
   row, column);
    }
}
    }

    public static void main(String[] args)
    {
try
{
    Test t = new Test("Test");
}
catch (Exception e)
{
    e.printStackTrace();
}
    }
}

|
只是一个想法, 没有试过.

得自己写一个 TableCellRender, 当数据改动时, 给数据加一个
标志位, 然后根据数据的标志位来 flash , 可能需要线程或者 timer

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个比较笨的问题:如何用两个Vector对象动态生成一个JTable?及从JTable里取得数据。
  • JTable的刷新问题!
  • 菜鸟问题---JTable怎么用?
  • JTable的问题(急,先谢大侠们)
  • 关于JTable类的问题
  • 哪位大虾能够帮我这个JTable的小问题阿!!!
  • 如果解决jTable中滚动条拖动后花屏的问题》?
  • 关于JTable的问题!
  • Swing中JTable控件的问题!
  • 关于JTable自动更新数据的问题
  • 简单问题100分:如何使JTable的单元格(或行)可以选择而不能编辑?? iis7站长之家
  • jTable中行标题的宽度调整问题,急,各位大虾多帮忙啦!
  • Java有关JScrollPane和JTable的使用时横滚动条的问题请教
  • JTable的拖放问题
  • 有关JTABLE的问题!急!在线等待!
  • 用java swing JTable做一个属性编辑器遇到的问题,请高手赐教!急,急!!
  • 一个关于jtable放置在jscrollpane的问题?
  • 问题:DefaulTableModel是否有排序的功能,如果没有,jTable如何排序,我是从XML取数据到Table里。
  • 从tablemodel里面检测到jtable一格的数据有问题如何让该格获得焦点继续编辑?
  • 关于JTable的问题(我能给的最高分了)
  • java命名空间javax.swing类jtable的类成员方法: jtable定义及介绍
  • JTable:如何在JTable中加入新的column和加入的row,如何在JTable中设置指定坐标上的值?
  • java命名空间javax.swing类jtable.accessiblejtable的类成员方法: jtable.accessiblejtable定义及介绍
  • 初始化jtable时,我只想生成一个只有表头,即列名,还没有数据行的jtable。该如何实现?
  • java命名空间javax.swing类jtable.accessiblejtable.accessiblejtablecell的类成员方法: jtable.accessiblejtable.accessiblejtablecell定义及介绍
  • JTABLE的难题:我想在鼠标右键点击JTABLE时被点中的那一行被选中,如何实现?
  • java命名空间javax.swing类jtable的类成员方法: selectionbackground定义及介绍
  • JTable里面点击cell下拉JTable
  • java命名空间javax.swing类jtable的类成员方法: configureenclosingscrollpane定义及介绍
  • 关于JTable:选择表里的一行,要求新弹出的一窗口里面TextField显示这行各个字段的内容,JTable有这样的ActionListener吗?
  • java命名空间javax.swing类jtable的类成员方法: setsurrendersfocusonkeystroke定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3