[SQL] 어떻게 JTable의에서 JCheckBox에 추가하는?
SQL어떻게 JTable의에서 JCheckBox에 추가하는?
우선 나는 내 문제를 모두 설명 할 것입니다 나의 영어 방치을 끼쳐 드려 죄송합니다.
우선 내가 가지고있는 JTable의에서 JCheckBox에 싶어요.
나는 세 번째 열은 처음에 학생이 JCheckBox에 값으로 존재하거나 존재 여부를 취할 것 결석 / 현재해야 할 열 인덱스 0과 1의 데이터베이스에서 학생증과 학생의 이름을 검색하고 있습니다.
JTable의 값에 대한 내 코드 여기 :
Attendance.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shreesai;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
/**
*
* @author Admin
*/
public class Attendance{
Connection con = Connectdatabase.ConnecrDb();
public Vector getEmployee()throws Exception
{
Vector<Vector<String>> employeeVector = new Vector<Vector<String>>();
PreparedStatement pre = con.prepareStatement("select studentid,name from student");
ResultSet rs = pre.executeQuery();
while(rs.next())
{
Vector<String> employee = new Vector<String>();
employee.add(rs.getString(1)); //Empid
employee.add(rs.getString(2));//name
employeeVector.add(employee);
}
if(con!=null)
con.close();
rs.close();
pre.close();
return employeeVector;
}
}
DATABASE 절전 IT INTO 벡터에서 값을 촬영에 CODE
AttendanceGUI.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shreesai;
import static java.awt.Frame.MAXIMIZED_BOTH;
import java.util.Vector;
import javax.swing.JOptionPane;
/**
*
* @author Admin
*/
public class AttendanceGUI extends javax.swing.JFrame {
/**
* Creates new form AttendanceGUI
*/
private Vector<Vector<String>> data;
private Vector<String> header;
public AttendanceGUI() throws Exception {
this.setLocationRelativeTo(null);
setExtendedState(MAXIMIZED_BOTH);
Attendance att = new Attendance();
data = att.getEmployee();
header = new Vector<String>();
header.add("Student ID");
header.add("Student Name");
header.add("Absent/Present");
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
AttendanceT = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
AttendanceT.setModel(new javax.swing.table.DefaultTableModel(
data,header
));
jScrollPane1.setViewportView(AttendanceT);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(397, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(89, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(AttendanceGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(AttendanceGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(AttendanceGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(AttendanceGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try{
new AttendanceGUI().setVisible(true);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
});
}
// Variables declaration - do not modify
private javax.swing.JTable AttendanceT;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
내 problemis은 내가 JTabel 모델, 렌더러 모두를 본 모든 학생들 앞에 JCheckBox에 추가 할 수 있지만 난 아무것도하지 않습니다. 나는 이런 식으로 뭔가를 원하는 ...
나는 몇 주 동안이 물건을 검색했지만이 적합한 아무것도하지 않았다
해결법
-
==============================
1.테이블을 사용하는 방법으로 시작합니다.
테이블을 사용하는 방법으로 시작합니다.
테이블 모델은 몇 가지가 필요합니다.
간단한 예와 함께 업데이트
import java.awt.EventQueue; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.table.DefaultTableModel; public class TableTest { public static void main(String[] args) { new TableTest(); } public TableTest() { startUI(); } public void startUI() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } MyTableModel model = new MyTableModel(); model.addRow(new Object[]{0, "Brian", false}); model.addRow(new Object[]{1, "Ned", false}); model.addRow(new Object[]{2, "John", false}); model.addRow(new Object[]{3, "Drogo", false}); JTable table = new JTable(model); JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(table)); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class MyTableModel extends DefaultTableModel { public MyTableModel() { super(new String[]{"ID", "Name", "Present"}, 0); } @Override public Class<?> getColumnClass(int columnIndex) { Class clazz = String.class; switch (columnIndex) { case 0: clazz = Integer.class; break; case 2: clazz = Boolean.class; break; } return clazz; } @Override public boolean isCellEditable(int row, int column) { return column == 2; } @Override public void setValueAt(Object aValue, int row, int column) { if (aValue instanceof Boolean && column == 2) { System.out.println(aValue); Vector rowData = (Vector)getDataVector().get(row); rowData.set(2, (boolean)aValue); fireTableCellUpdated(row, column); } } } }
더 나은 스윙이 어떻게 작동하는지 이해가 될 때까지 내가보기 엔 당신이 양식 편집기를 피하기 추천 할 것입니다 추신 - 이럴
-
==============================
2.당신이 테이블 모델에 데이터 부울 값을 추가 글쎄 경우, DefaultCellRendered 때문에 문제가 어디이며, 그 자체로 checbox로 렌더링?
당신이 테이블 모델에 데이터 부울 값을 추가 글쎄 경우, DefaultCellRendered 때문에 문제가 어디이며, 그 자체로 checbox로 렌더링?
from https://stackoverflow.com/questions/18099717/how-to-add-jcheckbox-in-jtable by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 하나 또는 여러 개의 데이터베이스 (0) | 2020.06.15 |
---|---|
[SQL] 부모 - 자식 체인에 대한 SQL 쿼리 (0) | 2020.06.15 |
[SQL] 어떻게 VARBINARY (최대) 컬럼에 이미지를 저장? (0) | 2020.06.15 |
[SQL] JDBC와 SQL에서 날짜 사이세요? (0) | 2020.06.15 |
[SQL] 표에서 저장 프로 시저의 목록 (0) | 2020.06.15 |