[英]JTable not visible when added to Jpanel
我的前面板有JButton。 單擊它時,應以表格格式顯示數據。 我已將數據和列名稱分配給JTable參數,但在前端不可見。 我確認正確分配了值,但不確定為什么表在面板中不可見。 這是我的代碼:
private void disPlayDataActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
sql = "select * from persons";
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metaData = rs.getMetaData();
int columnCount=metaData.getColumnCount();
String[]columnNames=new String[columnCount];
for(int i=0;i< columnNames.length;i++){
columnNames[i]=metaData.getColumnName(i+1);
}
ArrayList<String[]> rows=new ArrayList<>();
while(rs.next()){
String[]currentrow=new String[columnCount];
for(int i=0;i<columnCount;i++){
currentrow[i]=rs.getString(i+1);
}
rows.add(currentrow);
}
String[][] rowsArray=new String[rows.size()][columnCount];
rowsArray=rows.toArray(rowsArray);
JTable jt=new JTable(rowsArray,columnNames);
jPanel2.add(jt);
jt.setVisible(true);
} catch (SQLException ex) {
Logger.getLogger(EmployeePanel.class.getName()).log(Level.SEVERE, null, ex);
}
finally{
}
}
你可以試試這個嗎
JTable jt=new JTable(rowsArray,columnNames);
jt.setBounds(30,40,200,300); // you can put dimension as per your wish...
JScrollPane sp=new JScrollPane(jt);
jPanel2.add(sp);
// code fore set visible true to jpanel2...
Swing的布局API是惰性的,它是通過這種方式設計的。 您需要在准備就緒時告訴它,以重新驗證容器層次結構。
JTable jt=new JTable(rowsArray,columnNames);
jPanel2.add(jt);
jPanel2.revalidate();
jPanel2.repaint();
一般來說,在不知道完整代碼的情況下,簡單地擁有一個主JTable
並在需要時更改其模型要容易得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.