ecco di seguito il codice
codice:public class GridBagLayoutDemo { static Database db; static JTable table; final static boolean shouldFill = true; final static boolean shouldWeightX = true; final static boolean RIGHT_TO_LEFT = false; private static final int AUTO_RESIZE_OFF = 0; JTextArea output; JScrollPane scrollPane; static JFrame frame; public static Component addComponentsToPane(Container pane) { if (RIGHT_TO_LEFT) { pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); } JScrollPane jScrollPane1,jScrollPane2; JLabel labelSpazio; JLabel labelCodiceLocalita; final JTextField textCodiceLocalita ; JLabel labelOraPartenze; final JTextField textOraPartenze; JLabel labelCodice1Nota; final JTextField textCodice1Nota; JLabel labelCodice2Nota; final JTextField textCodice2Nota; JLabel labelOraArrivoDa; final JTextField textOraArrivoDa; JLabel labelOraPartenzaPer; final JTextField textOraPartenzaPer; JLabel labelCodice1NotaBis; final JTextField textCodice1NotaBis; JLabel labelCodice2NotaBis; final JTextField textCodice2NotaBis; JLabel labelOraArrivoPer; final JTextField textOraArrivoPer; JButton buttonInserisci; pane.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); if (shouldFill) { //natural height, maximum width c.fill = GridBagConstraints.HORIZONTAL; } inizializzaDatabase(); Font myFont = new Font("Verdana", Font.PLAIN, 15); //devo aggiungere una tabella Vector v = db.eseguiQuery( "SELECT * FROM archiviopartenzeferiali ;" ); Vector vettore = new Vector(); vettore.add(new String("CODICE LOCALITA")); vettore.add(new String("ORA PARTENZA")); vettore.add(new String("NOTA")); vettore.add(new String("NOTA BIS")); vettore.add(new String("ORA ARRIVO")); vettore.add(new String("ORA PARTENZA PER")); vettore.add(new String("NOTA")); vettore.add(new String("NOTA BIS")); vettore.add(new String("ORA DI ARRIVO PER")); table = new TableExample(v, vettore); //////codice.............. questo è il codice di tableexample che è copiato sempre in questa classe class TableExample extends JTable { private class MyMouseAdapter extends MouseAdapter { public void mouseClicked(MouseEvent me) { TableExample t = (TableExample)me.getSource(); if (me.getClickCount() == 2) { // facciamo qualcosa... tu potresti ricavare il dato selezionato, // e lanciare una nuova query. int row = t.rowAtPoint(me.getPoint()); int column = t.columnAtPoint(me.getPoint()); Object prova= t.getValueAt(row, column); elementiRicetta = db.eseguiQuery( "SELECT * FROM Ingredienti WHERE Descrizione = '"+prova+"' ;" ); System.out.println(prova); addRow(); selectCell(i,0); ricetteTabella.setValueAt(prova,i,0); i++; } } } // serve solo ad inibire la funzione "principe" del doppio click su una JTable, ovver // editare la cella target del doppio click. public boolean isCellEditable(int row, int column) { return false; } public TableExample(Vector v, Vector n) { super(v, n); this.addMouseListener(new MyMouseAdapter()); } public void selectCell(int row,int col) { if(row!=-1 && col !=-1) { table.setRowSelectionInterval(row,row); table.setColumnSelectionInterval(col,col); } } public void addRow() //Add Row { Vector r=new Vector(); r=createBlankElement(); rows.addElement(r); ricetteTabella.addNotify(); } public Vector createBlankElement() { Vector t = new Vector(); t.addElement((String) " "); t.addElement((String) " "); t.addElement((String) " "); t.addElement((String) " "); t.addElement((String) " "); t.addElement((String) " "); t.addElement((String) " "); return t; } }



Rispondi quotando