I want to change the following code so that when I press ctrl-a it copies not only the table data but also the header text. How do I do this? Please respond with working code example if you can.

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.JTableHeader;

public class JTableTest {

String data[][] = { { "Name1", "Surname1", "Note1", "Datapoint1", "Datapoint2", "Datapoint3", "Datapoint4", "Datapoint5" },
{ "Name2", "Surname2", "Note2", "Datapoint1", "Datapoint2", "Datapoint3", "Datapoint4", "Datapoint5" },
{ "Name3", "Surname3", "Note3", "Datapoint1", "Datapoint2", "Datapoint3", "Datapoint4", "Datapoint5" },
{ "Name4", "Surname4", "Note4", "Datapoint1", "Datapoint2", "Datapoint3", "Datapoint4", "Datapoint5" } };
String header[] = { "Name", "Surname", "Note", "Datapoint1", "Datapoint2", "Datapoint3", "Datapoint4", "Datapoint5" };
static JScrollPane pane;
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

public JTableTest(String title) {
JFrame frame = null;
frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);

JPanel resultPanel = new JPanel(new BorderLayout());
resultPanel.setOpaque(true);
final JTable table = new JTable(data, header) {
private static final long serialVersionUID = 1L;

public Dimension getMaximumSize() {
setMaximumSize(new Dimension(screenSize.width/4, screenSize.height/4));
setMinimumSize(getPreferredScrollableViewportSize());
return getPreferredSize();
}
};
table.setFillsViewportHeight(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JTableHeader header = table.getTableHeader();
header.setEnabled(true);
table.setAutoscrolls(true);
table.setDragEnabled(true);
table.setAutoCreateRowSorter(true);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
table.setColumnSelectionAllowed(true);
table.setRowSelectionAllowed(true);
table.setColumnSelectionInterval(0, 0);
table.setTableHeader(header);

pane = new JScrollPane(table);
pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
pane.setAutoscrolls(true);
pane.setColumnHeaderView(header);
pane.setRowHeaderView(header);
pane.setWheelScrollingEnabled(true);
resultPanel.add(pane);
resultPanel.setAutoscrolls(true);

frame.setContentPane(resultPanel);
frame.setSize(500, 200);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

/**
* @param args
*/
public static void main(String[] args) {
new JTableTest( "JTable Test" );

}

}