我正在制作一个能够保持出勤的应用程序。一旦我有了学生名单,我将如何展示他们并检查他们是否存在。我最初认为JTable会起作用,但是将摇摆组件添加到JTable并不是世界上最简单的事情。有没有更简单的方法来解决这个问题?下面的图片大致显示了我的想象,但如果你有不同的想法,请随意分享。谢谢!
答案 0 :(得分:2)
我的建议是,使用复选框而不是两个单选框控件。看起来更好。
并检查呈现的用户。
答案 1 :(得分:2)
AFAIK前3列看起来很正常。但第四栏是我认为你被困在了。
了解JTable
中的Renderer and Editor。
我认为将JPanel
渲染到最后一列就可以了。在JPanel
上添加两个JRadioButton
。
P.S:我尝试过这种方法,但是有效。
答案 2 :(得分:2)
这是一个EG,展示如何使用JTable
我保留了ABS/Present
coloumn的布尔值,正如@Hendrik Ebbers建议的那样,它将自动变为CheckBox
。
首先,您必须使用JTabel
fooTable.setModel(dataModel)
的模型
这样的事情:
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
试试自己,如果遇到任何问题,请索取源代码。
<强>更新强>
你可以试试这个:
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();
}
});
}
}