JScrollPane,JTable

来源:互联网 发布:美国网站域名后缀 编辑:程序博客网 时间:2024/06/05 10:32

同事要一个和Access功能类似的软件,但是要满足她提出的各种要求。她知道我是做软件的,所以让我给写一个,想想她的提的需求很容易实现,所以就答应了。因为Access的功能她就用来管理表格,日常的很多表格很多,都需要进行电子档的登记。此软件肯定要实现表格操作的功能,虽然搞JAVA已经快两年了,但是基本上都是写B/S架构的。整一个JScrollPane与JTable愣是花了我一个小时,主要就卡在表格的水平滚动条无法滚动。

以下是两者的组合示例,源码中已经加入必要的注释:

1.主界面

[c-sharp] view plaincopy
  1. package ibees.swing;  
  2.   
  3. import java.awt.HeadlessException;  
  4. import java.awt.Toolkit;  
  5. import javax.swing.JFrame;  
  6. import javax.swing.JScrollPane;  
  7. import javax.swing.JTable;  
  8.   
  9. /** 
  10.  *JScrollPane和JTable的使用示例 
  11.  * @author hhzxj2008 
  12.  */  
  13. public class JScrollPaneSample extends JFrame{  
  14.       
  15.     /** 
  16.      * @param args the command line arguments 
  17.      */  
  18.     public static void main(String[] args) {  
  19.         java.awt.EventQueue.invokeLater(new Runnable(){  
  20.   
  21.             public void run() {  
  22.                 new JScrollPaneSample("滚动示例").setVisible(true);  
  23.             }  
  24.         });  
  25.     }  
  26.   
  27.     public JScrollPaneSample(String title) throws HeadlessException {  
  28.         super(title);  
  29.         setDefaultCloseOperation(EXIT_ON_CLOSE);  
  30.         JTable table = new JTable(new SampleTableModel(20000,40));  
  31.         table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//关闭表格列自动调整,此时水平滚动条可见  
  32.         JScrollPane jscrollPane = new JScrollPane(table);//将Table添加到可滚动Pane当中  
  33.         add(jscrollPane);  
  34.         //设置JFrame窗体的大小为分辨率-50,并设置窗体的左上角的位置  
  35.         setBounds(25,25,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-50,(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-50);  
  36.     }  
  37. }  

2.TableModel

[c-sharp] view plaincopy
  1. package ibees.swing;  
  2.   
  3. import javax.swing.table.AbstractTableModel;  
  4.   
  5. /** 
  6.  * 表格模板,指定使用此模板的表格的行数和列数,并指定列和行交汇处的值。 
  7.  * @author hhzxj2008 
  8.  */  
  9. public class SampleTableModel extends AbstractTableModel{  
  10.     private int rowNum;  
  11.     private int columnNum;  
  12.   
  13.     public SampleTableModel(int rowNum, int columnNum) {  
  14.         this.rowNum = rowNum;  
  15.         this.columnNum = columnNum;  
  16.     }  
  17.       
  18.     public int getRowCount() {  
  19.         return rowNum;  
  20.     }  
  21.   
  22.     public int getColumnCount() {  
  23.         return columnNum;  
  24.     }  
  25.   
  26.     public Object getValueAt(int rowIndex, int columnIndex) {  
  27.         return (rowIndex+1) * (columnIndex+1);  
  28.     }  
  29.   
  30. }  

0 0
原创粉丝点击