WEB开发网
开发学院软件开发Java 建立一个 Derby 日历,第 3 部分: 使用事务和锁定... 阅读

建立一个 Derby 日历,第 3 部分: 使用事务和锁定(下)

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示:使用表模型 前面修改了后端,现在来看看前端,建立一个 Derby 日历,第 3 部分: 使用事务和锁定(下),GUI 应用程序显示表中的事件,如果没有模型,我们来看看这个类, 定义表第一步是将该类定义为 AbstractTableModel 的子类和定义表本身的结构,这项任务就非常单调乏味,为了避免在讨论真正的界面时分

使用表模型

前面修改了后端。现在来看看前端。GUI 应用程序显示表中的事件,如果没有模型,这项任务就非常单调乏味。为了避免在讨论真正的界面时分心,我们来看看这些模型是如何工作的,这样后面就清楚是怎么回事了。

什么是表模型?

如果您曾经做过程序员,我告诉您需要显示一个表中的信息,那么您就知道需要采取一系列的步骤。需要安排不同的行和列,记录哪一行代表哪个对象,等等。如果还希望编辑表,那么要完成的任务清单就更长了。

问题在于这一系列活动都是固定的。如果知道应用程序中要在好几个地方做同样的事情,您可能就会决定建立某种自动化过程来简化工作。当然,毫不奇怪别人已经这样做了。事实上,这种模型的概念就是 Swing 的一部分,Swing 是组成 GUI 的 Java API。

应用程序使用 AbstractTableModel 对象告诉 GUI 如何执行动作,如填充表、响应数据的修改。该模型在创建表时设置(参见 清单 15)。

清单 15. 利用表模型

   ... 
  this.eventModel = new EventTableModel(); 
  reloadTableModel(); 
  final JTable eventTable = new JTable(this.eventModel); 
  tablePanel.add(new JScrollPane(eventTable), BorderLayout.CENTER); 
... 

EventTableModel 类中定义了这些行为,因此 eventTable 对象立刻知道要做什么。我们来看看这个类。

定义表

第一步是将该类定义为 AbstractTableModel 的子类和定义表本身的结构,如 清单 16 所示。

清单 16. 定义表本身

   import java.sql.Connection; 
import java.util.Date; 
 
import javax.swing.table.AbstractTableModel; 
 
public class EventTableModel extends AbstractTableModel { 
 
 String[] columns = { "Title", "Description", "Reminders To" }; 
 
 EventClass[] events; 
 
 public int getRowCount() { 
 if (events != null) { 
  return events.length; 
 } 
 return 0; 
 } 
 
 public int getColumnCount() { 
 return columns.length; 
 } 
 
 public String getColumnName(int col) { 
 return columns[col]; 
 } 
 
}

1 2 3 4 5 6  下一页

Tags:建立 一个 Derby

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接