나는이 예외를 받고 있어요 &를 Excel 파일로 tabbedpanes의 테이블 데이터를 내보낼려고클래스 캐스트 예외 - tabbedpane.getComponentAt (인덱스)
javax.swing.JTable를 $ 1이 될 수 없습니다 이
DefaultReportPanel 패널 = (DefaultReportPanel) this.tabbedPane.getComponentA 같은 출력을 시전하는 동안 javax.swing.table.DefaultTableModel
에캐스팅 t (i);
이것은 DefaultReportPanel
public class DefaultReportPanel extends JPanel {
JScrollPane scrollPane;
JTable table;
public DefaultReportPanel(){
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
this.scrollPane = new JScrollPane();
this.add(scrollPane);
}
public void setTable(String[] headers, Object[][] data){
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
this.table = new JTable(data, headers);
this.table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.scrollPane.setViewportView(this.table);
}
public DefaultTableModel getTableModel(){
return (DefaultTableModel) this.table.getModel();
}
이의 클래스는 내가 예외에게없는 것에 대한
public LinkedHashMap<String, DefaultTableModel> getTableModels() {
LinkedHashMap<String, DefaultTableModel> models = new LinkedHashMap<String, DefaultTableModel>();
for(int i = 0; i < this.tabbedPane.getTabCount(); i++){
DefaultReportPanel panel = (DefaultReportPanel) this.tabbedPane.getComponentAt(i);
System.out.println(this.tabbedPane.getTitleAt(i));
if(panel != null)
{
models.put(this.tabbedPane.getTitleAt(i), panel.getTableModel());
}
}
return models;
}
어떤 생각을 얻는 한 방법이다?
내 프로그램을 실행하기 위해 어떻게 변경해야합니까? – SilentCoder
(1) 테이블을 직접 생성하여 JTable에 제공하거나 (2) AbstractTableModel로 캐스트하거나, (3) 아무것도 캐스팅하지 않고 TableModel을 사용하여 DefaultTableModel을 테이블에 저장하십시오. 답변 (2)와 (3)은 LinkedHashMap의 유형을 변경해야합니다. – splungebob
굉장 !! (1) 완벽하게 작동합니다. 고맙습니다. 답안에 귀하의 의견을 적어 주시면 도움이 될 것입니다. – SilentCoder