亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 使用Swing timer實現(xiàn)Jtable數(shù)據(jù)定時更新 [打印本頁]

作者: luckfly    時間: 2006-04-17 23:47
標題: 使用Swing timer實現(xiàn)Jtable數(shù)據(jù)定時更新

程序分三部分,主程序類SuperTable.java,框架類SuperTableFrame.java,數(shù)據(jù)模板類SuperTableModel.java。
主程序類SuperTable.java,如下:
package supertable.swing;
import javax.swing.*;
public class SuperTable {
public static void main(String[] args){
  JFrame frame = new SuperTableFrame();
  frame.show();
}
}
框架類SuperTableFrame.java,如下:
package supertable.swing;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableModel;
import javax.swing.Action;
import javax.swing.AbstractAction;
import javax.swing.Timer;
/*
* 創(chuàng)建日期 2005-3-21

*/
/**
* @author Administrator
*
*/
public class SuperTableFrame extends JFrame {
private JTable table = null;
private Timer timer = null;
public SuperTableFrame(){
  timer = new Timer(300,updateTableAction);
  setTitle("SuperTable");
  setSize(300,200);
  addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
  });
  TableModel model = new SuperTableModel(30,5,10);
  table = new JTable(model);
  
  JPanel p = new JPanel();
  addButton(p,"Update",new ActionListener(){
   public void actionPerformed(ActionEvent evt){
    table.validate();
    table.updateUI();
   }
  });
  addButton(p,"Start",new ActionListener(){
   public void actionPerformed(ActionEvent evt){
    timer.start();
   }
  });
  addButton(p,"Stop",new ActionListener(){
   public void actionPerformed(ActionEvent evt){
    timer.stop();
   }
  });
  Container contentPane = getContentPane();
  contentPane.add(new JScrollPane(table),"Center");
  contentPane.add(p,"South");
}
public void addButton(Container c,String title,ActionListener a){
  JButton b = new JButton(title);
  c.add(b);
  b.addActionListener(a);
}
private Action updateTableAction = new AbstractAction(){
  public void actionPerformed(ActionEvent e){
   table.validate();
   table.updateUI();
  }
};
}
數(shù)據(jù)模板類SuperTableModel.java,如下:
package supertable.swing;
import java.text.NumberFormat;
import javax.swing.table.AbstractTableModel;
public class SuperTableModel extends AbstractTableModel {
private int years;
private int minRate;
private int maxRate;
private static final double INITAL_BALANCE = 100000.0;
public SuperTableModel(int y,int r1,int r2){
  years = y;
  minRate =r1;
  maxRate = r2;
}
public int getRowCount(){
  return years;
}
public int getColumnCount(){
  return maxRate -minRate +1;
}
public Object getValueAt(int r,int c){
  //double rate = (c + minRate)/100.0;
  //int nperiods = r;
  //double futureBalance = INITAL_BALANCE * Math.pow(1+rate,nperiods);
  
  double rate = Math.random();
  return NumberFormat.getCurrencyInstance().format(rate);
}
public String getColumnName(int c){
  double rate = (c+minRate)/100.0;
  return NumberFormat.getPercentInstance().format(rate);
}
}
運行圖:



本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/15511/showart_101268.html




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2