我正在製作一個保持出席的應用程序。一旦我有了一份學生名單,我將如何去展示他們全部並檢查他們是否存在或缺席。我原本以爲JTable會工作,但將世界各地的組件添加到JTable並不是世界上最簡單的事情。有沒有更簡單的方法來解決這個問題?下面的圖片大致顯示了我所描繪的內容,但如果您有不同的想法,請隨時分享。謝謝!如何組織我的考勤計劃
回答
這裏是一個EG向您展示如何使用JTable
我一直一個布爾值ABS/Present
coloumn,通過@Hendrik埃伯斯的建議,它就會自動爲CheckBox
。 首先,你必須設置使用fooTable.setModel(dataModel)
您JTabel
的模型,
事情是這樣的:
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"Joel", "Hails", new Integer(1011001), new Boolean(true)},
{"James", "Roggers", new Integer(1912212), null},
{"Rehy", "Gomes", new Integer(1121212), new Boolean(true)},
{"Sunil", "gawas", new Integer(9909090), null}
},
new String [] {
"1st name", "last name", "ID/NUMBER", "ABS/Present"
}
)
凡new Object [][]
我有我的所有數據,並new String []
將有列名。
休息,你可以找到
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html
自己嘗試更多信息,請的源代碼,如果你有任何問題。
UPDATE:
你可以試試這個:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.SwingUtilities;
public class NewJFrame3 extends JPanel {
public NewJFrame3() {
super(new GridLayout(1,0));
JTable table = new JTable(new MyTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"1st Name",
"Last Name",
"ID/NUMBER",
"PRESENT"};
private Object[][] data = {
{"Joel", "Hails",
"110023", new Boolean(false)},
{"John", "Doe",
"343409", new Boolean(true)},
{"Sue", "well",
"899800", new Boolean(false)},
{"Jane", "White",
"990909", new Boolean(true)},
};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
}
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
NewJFrame3 newContentPane = new NewJFrame3();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
我確實有一些問題。我試着做你在這裏做的(http://pastebin.com/u0w4tcLq)。但是,我得到了這個結果(http://imageshack.us/scaled/landing/407/jtable.png)。沒有標題和沒有渲染的複選框。 –
我通過將表添加到滾動窗格來解決標題問題,但仍然沒有複選框。 –
@ JoelA.Christophel請在此更新完整的源代碼**。不要提供該鏈接,並且您已經學習了教程?請複製粘貼您的完整源代碼(我的意思是在您的問題中更新)。 –
我的建議是,使用複選框,而不是兩個單選框控件。它的更好看。
並檢查呈現的用戶。
這應該在評論中。 –
只需使用「當前」列的布爾值。數據將自動顯示爲複選框。如果複選框沒有被選中,學生就缺席 –
@HendrikEbbers我認爲RadioButton看起來比使用CheckBox更有前途。 – Amarnath
AFAIK前3列看起來很正常。但是第四欄是我認爲你被卡住的地方。
閱讀關於Renderer and Editor在JTable
。
我認爲渲染一個JPanel
到最後一列就可以了。在那JPanel
上加兩個JRadioButton
's。
P.S:我試過這種方法,它的工作原理。
感謝您的信息。 +1我從你的回答中瞭解了渲染和編輯器。不過,我要去用joey提供的cop-out解決方案。 –
- 1. JVM如何考慮計算機組織?
- 2. 計數員工考勤
- 3. 考勤
- 4. 重組考勤表邏輯
- 5. 如何考慮Sprint計劃?
- 6. 考勤表2005
- 7. 考勤查詢
- 8. 如何從Excel工作表上載考勤表中的考勤表?
- 9. 考勤計算/期間日曆
- 10. MySQL和PHP考勤
- 11. LAMP考勤系統
- 12. 考勤表按月份分組
- 13. 如何計算出勤率
- 14. 如何組織考勤系統代碼(使用$ _POST而不是$ _GET作爲動態表單)?
- 15. 學生考勤表結構
- 16. OpenERP HR考勤影響表
- 17. 考勤系統在MySQL
- 18. 考勤跟蹤器/多投
- 19. 根據某些事件的時間組織計劃的算法?
- 20. 設計模式:我如何處理不同類型的組織?
- 21. 學校考勤系統的數據庫設計
- 22. 如何獲得員工的考勤記錄上的Crystal Report
- 23. 考勤數據庫過量缺勤報警
- 24. 更新iOS開發人員計劃類型(公司/組織)
- 25. 如何組織我的課程?
- 26. 如何組織我的Dart項目
- 27. 如何組織我的規格文件?
- 28. 如何組織我的css規則?
- 29. 如何組織我的項目?
- 30. 如何組織我的蛋糕視圖
_I intially想到的JTable會的工作,但它不是世界上最容易的事情擺組件添加到JTable._爲什麼你是這麼認爲的嗎? – Amarnath
['CheckOne'](http://stackoverflow.com/a/7920159/230513)是使用'JChckbox'的基本示例;一些'JRadioButton'選項被引用[在這裏](http://stackoverflow.com/a/11173600/230513)。 – trashgod