un menu contextuelle(JpopMenu) avec click à droit

un menu contextuelle(JpopMenu) avec click à droit - Java - Programmation

Marsh Posté le 04-04-2010 à 14:43:31    

Salem,
je besoin du code java pour construire un menu contextuel
qui apparaitre avec un clic droit sur un jtable
SVP,m'aider

Reply

Marsh Posté le 04-04-2010 à 14:43:31   

Reply

Marsh Posté le 06-04-2010 à 17:10:58    

Quick and un peu dirty

Code :
  1. public class MonAppli extends JFrame implements ActionListener {
  2. private JTable table;
  3. private JPopupMenu popupMenu = new JPopupMenu();
  4. private int selectedCol;
  5. private int selectedRow;
  6. public MonAppli() {
  7.  build();
  8. }
  9. private void build() {
  10.  String[][] rowData = { { "toto", "titi", "tutu" },
  11.                   { "bonjour", "aurevoir", "à bientot" } };
  12.  String[] columnNames = { "COL 1", "COL 2", "COL 3" };
  13.  table = new JTable(rowData, columnNames);
  14.  table.addMouseListener(new MouseAdapter() {
  15.   @Override
  16.   public void mouseReleased(MouseEvent e) {
  17.    if(e.getButton()==MouseEvent.BUTTON3){
  18.     showPopup(e);
  19.    }
  20.   }
  21.  });
  22.  getContentPane().add(table);
  23.  JMenuItem menuItem = new JMenuItem("ACTION 1" );
  24.  menuItem.setActionCommand("ACTION1" );
  25.  menuItem.addActionListener(this);
  26.  popupMenu.add(menuItem);
  27. }
  28. private void showPopup(MouseEvent e) {
  29.  if (e.isPopupTrigger()) {
  30.   Point p = new Point(e.getX(), e.getY());
  31.   System.out.println(table.columnAtPoint(p));
  32.   selectedCol = table.columnAtPoint(p);
  33.   selectedRow = table.rowAtPoint(p);
  34.   popupMenu.show(e.getComponent(), e.getX(), e.getY());
  35.   }
  36. }
  37. @Override
  38. public void actionPerformed(ActionEvent e) {
  39.  System.out.println("La cellule du tableau concerné est : "+ selectedCol + ";" + selectedRow);
  40. }
  41. /**
  42.  * @param args
  43.  */
  44. public static void main(String[] args) {
  45.  MonAppli appli = new MonAppli();
  46.  appli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  47.  appli.pack();
  48.  appli.setVisible(true);
  49. }

Reply

Marsh Posté le 09-04-2010 à 20:16:19    

Merci pour votre réponse
:)

Reply

Marsh Posté le 10-04-2010 à 00:01:27    

@phnatomass: Merci  bien pour votre aide :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed