JTable
의 내용이 처음 테이블을 만들 때 채워지는 수많은 예제와 튜토리얼이 있지만, Action event
에서 테이블을 채우는 방법을 이해하는 데 어려움을 겪고 있습니다. . 나는 JButton
클릭 action event
에서 JTable
을 채우는 싶습니다 Mkyong에서 파생 된 소스 코드와 How to use tables에 들어있는 예제 튜토리얼의액션 수행 이벤트에서 XML 요소를 가져 오기
씨. JButton
은 TableDemo
클래스에서 내 addDataToTable()
메서드를 호출합니다. 여기
public class TableDemo extends JPanel {
private JTable table;
public TableDemo() {
super(new GridLayout(1, 0));
table = new JTable(new ExifTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
addDataToTable();
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableDemo newContentPane = new TableDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
private void addDataToTable() {
try {
File file = new File("myDoc.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Exif.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Exif exif = (Exif) jaxbUnmarshaller.unmarshal(file);
System.out.println(exif.toString());
table.setValueAt(exif, 0, 0);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}