1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.KeyStroke;
public class Main {
private static JTable table;
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run(){
balance();
}
});
}
@SuppressWarnings("serial")
private static void balance(){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
Object[][] contenu = {{"","","",""},
{"","","",""}};
String[] colonnes = {"a","b","c","d"};
//Va à la cellule suivante jusqu'au bout de la ligne puis à la ligne suivante etc...
final Action CelluleSuivante = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//Pour ne pas qu'il aille au delà de la taille du tableau
if (table.getSelectedRow() < table.getRowCount()){
//Arrivé en fin de ligne il va à la première colonne de la ligne suivante
if(table.getSelectedColumn() == table.getColumnCount()-1)
table.changeSelection(table.getSelectedRow()+1,0,false,false);
else//il va vers la colonne suivante
table.changeSelection(table.getSelectedRow(),table.getSelectedColumn()+1,false,false);
}
}
};
//Enleve le comportement de la touche entrée
javax.swing.InputMap inputMap = (javax.swing.InputMap)javax.swing.UIManager.get("Table.ancestorInputMap");
inputMap.remove(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ENTER, 0));
table = new JTable(contenu,colonnes);
table.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),"ENTREE");
table.getActionMap().put("ENTREE", CelluleSuivante);
//L'ecouteur pour editer la cellule
table.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_ENTER){
table.editCellAt(table.getSelectedRow(),table.getSelectedColumn()+1);
}
}
});
panel.add(new JScrollPane(table));
frame.add(panel);
frame.setVisible(true);
frame.pack();
}
} |
Partager