本文共 1807 字,大约阅读时间需要 6 分钟。
同事要一个和Access功能类似的软件,但是要满足她提出的各种要求。她知道我是做软件的,所以让我给写一个,想想她的提的需求很容易实现,所以就答应了。因为Access的功能她就用来管理表格,日常的很多表格很多,都需要进行电子档的登记。此软件肯定要实现表格操作的功能,虽然搞JAVA已经快两年了,但是基本上都是写B/S架构的。整一个JScrollPane与JTable愣是花了我一个小时,主要就卡在表格的水平滚动条无法滚动。
以下是两者的组合示例,源码中已经加入必要的注释:
1.主界面
- package ibees.swing;
-
- import java.awt.HeadlessException;
- import java.awt.Toolkit;
- import javax.swing.JFrame;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
-
-
-
-
-
- public class JScrollPaneSample extends JFrame{
-
-
-
-
- public static void main(String[] args) {
- java.awt.EventQueue.invokeLater(new Runnable(){
-
- public void run() {
- new JScrollPaneSample("滚动示例").setVisible(true);
- }
- });
- }
-
- public JScrollPaneSample(String title) throws HeadlessException {
- super(title);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- JTable table = new JTable(new SampleTableModel(20000,40));
- table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
- JScrollPane jscrollPane = new JScrollPane(table);
- add(jscrollPane);
-
- setBounds(25,25,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-50,(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-50);
- }
- }
2.TableModel
- package ibees.swing;
-
- import javax.swing.table.AbstractTableModel;
-
-
-
-
-
- public class SampleTableModel extends AbstractTableModel{
- private int rowNum;
- private int columnNum;
-
- public SampleTableModel(int rowNum, int columnNum) {
- this.rowNum = rowNum;
- this.columnNum = columnNum;
- }
-
- public int getRowCount() {
- return rowNum;
- }
-
- public int getColumnCount() {
- return columnNum;
- }
-
- public Object getValueAt(int rowIndex, int columnIndex) {
- return (rowIndex+1) * (columnIndex+1);
- }
-
- }
转载地址:http://eybvi.baihongyu.com/