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

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

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 注意,首先创建的是 EventTableModel 而不是表格本身,建立一个 Derby 日历,第 3 部分: 使用事务和锁定(下)(10),然后调用 reloadTableMode() 方法填充它,该方法改变鼠标的形状,换句话说,如果用户在日历选择器中选择了新的一天,因此用户知道发生了什么事情

注意,首先创建的是 EventTableModel 而不是表格本身,然后调用 reloadTableMode() 方法填充它。该方法改变鼠标的形状,因此用户知道发生了什么事情,但更重要的是,它调用模型的 reloadEventsForDate() 方法来设置单元格中的数据。

建立 eventModel 后将其关联到一个 JTable 并显示该表格(参见 图 5)。

图 5. 添加表格
建立一个 Derby 日历,第 3 部分: 使用事务和锁定(下)

查看原图(大图)

但是,当用户单击某个日期时,仍然需要更新表格。

刷新事件列表

建立表格后,还要保证它显示正确的数据。换句话说,如果用户在日历选择器中选择了新的一天,需要从数据库请求适当的数据并显示在表格中(参见 清单 26)。(看到 EventTableMode 的方便之处了吗?)

清单 26. 刷新表

   ... 
  private JComponent layoutLeftPanel() { 
... 
    JButton addButton = new JButton("Add Event"); 
    addButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
        EventClass.add(CalendarFrame.this.conn, titleBox.getText(), 
            descriptionBox.getText(), reminderBox.getText(), 
            dateChooser.getDate()); 
        CalendarFrame.this.calendarPicker 
            .setDate(dateChooser.getDate()); 
        reloadTableModel(); 
      } 
    }); 
    editPanel.add(addButton, cons); 
    viewSplitPane.setBottomComponent(editPanel); 
    return viewSplitPane; 
  } 
 
  private JPanel layoutRightPanel() { 
... 
    this.eventModel = new EventTableModel(); 
    reloadTableModel(); 
    final JTable eventTable = new JTable(this.eventModel); 
    tablePanel.add(new JScrollPane(eventTable), BorderLayout.CENTER); 
 
    JPanel buttonPanel = new JPanel(); 
 
    JButton refreshButton = new JButton("Refresh"); 
    refreshButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
        reloadTableModel(); 
      } 
    }); 
    buttonPanel.add(refreshButton); 
    tablePanel.add(buttonPanel, BorderLayout.SOUTH); 
    return tablePanel; 
  } 
 
  private JComponent layoutMenuBar() { 
    JMenuBar menuBar = new JMenuBar(); 
    return menuBar; 
  } 
 
  public static void main(String args[]) { 
... 
  } 
 
  public void propertyChange(PropertyChangeEvent evt) { 
    reloadTableModel(); 
  } 
 
  private void reloadTableModel() { 
    SwingUtilities.invokeLater(new Runnable() { 
...

上一页  5 6 7 8 9 10 

Tags:建立 一个 Derby

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