import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.BorderFactory;
// second table for distances
_distModel = new DistanceTableModel();
JTable distTable = new JTable(_distModel);
- distTable.setAutoCreateRowSorter(true);
+ // Use reflection to call distTable.setAutoCreateRowSorter(true) which is new with Java 1.6
+ try {
+ Class<?> d = Class.forName("javax.swing.JTable");
+ d.getDeclaredMethod("setAutoCreateRowSorter", new Class[]{Boolean.TYPE}).invoke(distTable, Boolean.TRUE);
+ }
+ catch (Exception e) {}
scrollPane = new JScrollPane(distTable);
scrollPane.setPreferredSize(new Dimension(200, 250));
mainPanel.add(scrollPane);
dialogPanel.add(mainPanel, BorderLayout.CENTER);
+ // close window if escape pressed
+ KeyAdapter escListener = new KeyAdapter() {
+ public void keyReleased(KeyEvent inE) {
+ if (inE.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ _dialog.dispose();
+ }
+ }
+ };
+ _pointTable.addKeyListener(escListener);
+ distTable.addKeyListener(escListener);
+
// button panel at bottom
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));