建立一个 Derby 日历,第 3 部分: 使用事务和锁定(下)
2010-04-19 00:00:00 来源:WEB开发网先来看 main 方法。首先,调用 createTableIfNotExists 确保数据库已经建立。如果已经建好,则什么也不做。然后将锁定时间设为 1 秒,看看发生会话冲突时会怎么样。对于生产应用程序,这个值应该更高一些。
然后创建实际的框架并显示。
创建类首先要获得数据库连接。如果希望能够滚回修改,则必须关闭 autocommit 属性。
最后安排 GUI 迷宫中的每个细节(参见 图 1)。应用程序使用了 JSplitPane 对象,这样用户可以方便地决定界面中的哪一部分需要更大的空间。
图 1. 基本框架
添加基本的输入表单
然后创建基本的界面元素,如 清单 22 所示。
清单 22. 基本的输入表单
...
private JComponent layoutLeftPanel() {
JSplitPane viewSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
// Edit Panel
JPanel editPanel = new JPanel(new GridBagLayout());
GridBagConstraints cons = new GridBagConstraints();
cons.fill = GridBagConstraints.HORIZONTAL;
cons.anchor = GridBagConstraints.PAGE_START;
cons.insets = new Insets(5, 2, 5, 2);
cons.ipadx = 2;
cons.ipady = 2;
int rows = 1;
cons.gridy = rows++;
cons.gridx = 0;
editPanel.add(new JLabel("Title:"), cons);
final JTextField titleBox = new JTextField(10);
cons.gridx = 1;
editPanel.add(titleBox, cons);
cons.gridy = rows++;
cons.gridx = 0;
cons.gridheight = 1;
editPanel.add(new JLabel("Reminders:"), cons);
final JTextField reminderBox = new JTextField(10);
cons.gridx = 1;
editPanel.add(reminderBox, cons);
cons.gridy = rows;
cons.gridx = 0;
rows += 7;
cons.gridheight = 7;
cons.weighty = 1;
cons.fill = GridBagConstraints.BOTH;
editPanel.add(new JLabel("Description:"), cons);
final JTextArea descriptionBox = new JTextArea(8, 10);
cons.gridx = 1;
editPanel.add(new JScrollPane(descriptionBox), cons);
viewSplitPane.setBottomComponent(editPanel);
return viewSplitPane;
}
...
更多精彩
赞助商链接