현재 MySQL로 JTable을 배우려고합니다. 내 데이터베이스를 JTable로 설정하고 스크롤 창을 사용하여 내 GUI에 추가했습니다.JTable, 버튼을 클릭 할 때마다 테이블을 업데이트하십시오.
제 질문은, 제 버튼을 클릭 할 때마다 제 데이터베이스를 갱신하거나 검색 작업을 수행하는 방법 (둘 다 똑같은 것입니다 ..)입니다. 여기
이final Vector columnNames = new Vector();
final Vector data = new Vector();
try
{
// Connect to an Access Database
driver = IniFonksiyon.iniSVNOkut(driver, "databaseBilgileri", "driver");//"com.mysql.jdbc.Driver";
url = IniFonksiyon.iniOkut(url, "databaseBilgileri", "url");//"jdbc:mysql://localhost:3306/";
userid = IniFonksiyon.iniOkut(userid, "databaseBilgileri", "kullanici");
password = IniFonksiyon.iniOkut(password, "databaseBilgileri", "sifre");
dbName = IniFonksiyon.iniOkut(dbName, "databaseBilgileri", "dbIsmi");
Class.forName(driver);
Connection connection = DriverManager.getConnection(url+dbName , userid, password);
// Read data from a table
String sql = "select * from profildb.tbl_detailed";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
// Get column names
for (int i = 1; i <= columns; i++)
{
columnNames.addElement(md.getColumnName(i));
}
// Get row data
while (rs.next())
{
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i));
}
data.addElement(row);
}
rs.close();
stmt.close();
connection.close();
}
catch(Exception e)
{
System.out.println(e);
}
// Create table with database data
final JTable table = new JTable(data, columnNames)
{
/**
*
*/
private static final long serialVersionUID = 1L;
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);
if (o != null)
{
return o.getClass();
}
}
return Object.class;
}
};
이 테이블을 만들고 처리하는 코드입니다,하지만 직접 내 주요 GUI 기능과 연결 (내 .ini 파일에 데이터베이스 정보를 읽고있다) 내 코드 그래서 어떻게 검색 기능과 같은 다른 작업을 새로 고칠 수 있습니까?
안녕하세요, 고맙습니다. 이해합니다. 그렇다면 직접 코드에 DefaultTableModel을 구현할 수 있습니까? 아니면 테이블의 코드를 변경해야합니까? –
@Yesilmen, DefaultTableModel 또는 TableModel의 독자적인 구현. 모델이 실제 데이터를 관리하도록하고 테이블이 프레젠테이션을 담당하도록하십시오. – tenorsax