如何构建我的出勤计划

时间:2013-01-24 14:48:18

标签: java swing jdbc jradiobutton

我正在制作一个能够保持出勤的应用程序。一旦我有了学生名单,我将如何展示他们并检查他们是否存在。我最初认为JTable会起作用,但是将摇摆组件添加到JTable并不是世界上最简单的事情。有没有更简单的方法来解决这个问题?下面的图片大致显示了我的想象,但如果你有不同的想法,请随意分享。谢谢!

enter image description here

3 个答案:

答案 0 :(得分:2)

我的建议是,使用复选框而不是两个单选框控件。看起来更好。

并检查呈现的用户。

答案 1 :(得分:2)

AFAIK前3列看起来很正常。但第四栏是我认为你被困在了。

了解JTable中的Renderer and Editor

我认为将JPanel渲染到最后一列就可以了。在JPanel上添加两个JRadioButton

执行此操作的一个示例显示为herehere

P.S:我尝试过这种方法,但是有效。

答案 2 :(得分:2)

enter image description here

这是一个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();
 }
 });
 }
 }