Não sabe onde colocar o código java para evitar desordem de coluna

Eu tenho o seguinte código abaixo: Eu quero impedir que os headers de coluna sejam reordenados. Não tenho certeza onde colocar o seguinte código para fazer isso e também os colchetes que preciso colocar (se houver):

table.getTableHeader().setReorderingAllowed(false); 

Meu código abaixo

 public class JavaApplication2 extends javax.swing.JFrame{ String driverName = "net.sourceforge.jtds.jdbc.Driver"; String serverName = "xx"; String serverPort = "xx"; String database = serverName + ":" + serverPort; String url = "jdbc:jtds:sqlserver:/" + database; String username = "xx"; String password = "xx"; public JavaApplication2() throws SQLException { ArrayList columnNames = new ArrayList(); ArrayList data = new ArrayList(); try { Class.forName(driverName); Connection connection = DriverManager.getConnection(url, username, password); // Create and execute an SQL statement that returns some data. String SQL = "xx"; Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery(SQL); ResultSetMetaData rsmetadata = rs.getMetaData(); int columns = rsmetadata.getColumnCount(); // Get column names for (int i = 1; i <= columns; i++) { boolean add; add = columnNames.add( rsmetadata.getColumnName(i) ); } // Get row data while (rs.next()) { ArrayList row; row = new ArrayList(columns); for (int i = 1; i <= columns; i++) { boolean add; add = row.add( rs.getObject(i) ); } boolean add; add = data.add( row ); } } catch (SQLException e) { System.out.println( e.getMessage() ); } catch (ClassNotFoundException ex) { Logger.getLogger(JavaApplication2.class.getName()).log(Level.SEVERE, null, ex); } Vector columnNamesVector = new Vector(); Vector dataVector = new Vector(); for (int i = 0; i < data.size(); i++) { ArrayList subArray = (ArrayList)data.get(i); Vector subVector = new Vector(); for (int j = 0; j < subArray.size(); j++) { boolean add; add = subVector.add(subArray.get(j)); } boolean add; add = dataVector.add(subVector); } for (int i = 0; i < columnNames.size(); i++ ){ boolean add ; add = columnNamesVector.add(columnNames.get(i)); } // Create table with database data JTable table; table = new JTable(dataVector, columnNamesVector) //table.getTableHeader().setReorderingAllowed(false) //table.tableHeader.reOrderingAllowed(false); { public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) { Object o = getValueAt(row, column); if (o != null) { return o.getClass(); } } return Object.class; } }; JScrollPane scrollPane = new JScrollPane( table ); getContentPane().add( scrollPane ); JPanel buttonPanel = new JPanel(); getContentPane().add( buttonPanel, BorderLayout.SOUTH ); } } 

você pode chamar table.getTableHeader().setReorderingAllowed(false); depois de definir sua tabela.

no seu código você declarou e inicializou a tabela.

  JTable table; // start of creating table table = new JTable(dataVector, columnNamesVector){ public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) { Object o = getValueAt(row, column); if (o != null) { return o.getClass(); } } return Object.class; } }; //end of creating table 

então você pode chamar table.getTableHeader().setReorderingAllowed(false); Depois dessa linha. No seu código, o lugar que você chamou setReorderingAllowed não está correto porque está dentro da criação de tabelas. public Class getColumnClass método public Class getColumnClass está dentro do código de criação da tabela.

código tão completo é ...

  JTable table; table = new JTable(dataVector, columnNamesVector){ public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) { Object o = getValueAt(row, column); if (o != null) { return o.getClass(); } } return Object.class; } }; //call setReorderingAllowed here table.getTableHeader().setReorderingAllowed(false);