以下是將作業從SQlite
顯示到表格中並將它們適當地設置爲labelText
的方法。避免JTextField setText圍繞程序重複
private void setLabelText() {
try {
String table_click0 = (table_job.getModel().getValueAt(row, 0).toString());
String sqlSt = "SELECT Employer.name, * FROM Job INNER JOIN Employer ON Job.employerID = Employer.employerID WHERE jobID='"+table_click0+"' ";
conn = JavaConnect.ConnectDB();
pst = conn.prepareStatement(sqlSt);
rs = pst.executeQuery();
if(rs.next()) {
descriptionArea.setText(rs.getString(5));
empTitLabel.setText(rs.getString(1)+" - "+rs.getString(4));
idLabel.setText("Job Reference: " + rs.getString(2));
typeLabel.setText("Job Type: " + rs.getString(6));
salaryLabel.setText("Salary: " + rs.getString(7));
benefitsLabel.setText("Benefits : " + rs.getString(8));
vacLabel.setText("Vacancies : " + rs.getString(9));
closeLabel.setText("Closing Date: " + rs.getString(10));
reqLabel.setText("Requirement : " + rs.getString(11));
placeLabel.setText("Placement : " + rs.getString(12));
applyToLabel.setText("Apply To: " + rs.getString(13));
statusLabel.setText("Job Status: "+rs.getString(14));
locLabel.setText("Location: "+rs.getString(16));
postedLabel.setText("Posted: "+rs.getString(15));
}
}
我希望現在允許用戶選擇Job(點擊表上的行)來允許編輯更新數據。所以我提供了一個表單來做到這一點,而不是像表單textfields那樣重複使用descriptionArea.setText(rs.getString(5));
這樣的行,有沒有更簡單的方法來做到這一點。還是每個JTextfield
都必須單獨使用textfieldName.setText(....)方式操縱,有沒有什麼技巧可以縮短它?任何不錯的簡單技巧,可能重複使用上面的代碼來減少重複。
爲什麼不允許用戶直接編輯表格內的數據?或者表中沒有足夠的數據?您可能可以使用[JGoodies Binding API](http://www.jgoodies.com/freeware/libraries/binding/) – MadProgrammer
慷慨地使用數組可以消除一些重複代碼。當然,這只是將重複代碼移動到初始化數組中。 –
@MadProgrammer表收集了很多數據,所以不太理想,允許直接編輯,特別是當一個字段包含許多單詞的公司描述時。 – Hoody