Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    dare un evento MouseClicked() ad un AbstractTableModel

    ciao ragazzi
    ho creato un prototipo di tabella usando l'implementazione AbstractTableModel, e fin qui ci siamo, solo che ho bisogno di affibiare ad una di queste colonne un evento

    codice:
     MouseClicked()
    solo che nella classe che ho creato del AbstractTableModel non si posso introdurre questi tipi di eventi in quanto, appunto, è una classe astratta...
    mi sapreste dare un consiglio... io ho provato così, ma nn so andare avanti...

    codice:
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    TableColumn column = null;
    column = tab.getColumnModel().getColumn(6);//sesta colonna
    my.setUpSportColumn(tab,column);
    column.setCellRenderer(renderer);               
    renderer.addMouseListener(this);}
    
    //metodo per l'evento click
    
       public void mouseClicked(MouseEvent e) {
             try{
            JFrame f = new JFrame();
            JPanel p = new JPanel();
            tabellaPagina tb = new tabellaPagina("");
            int count=1;
            count = tb.contaFile(count);
            JTextArea t = new JTextArea(30,35);
            JScrollPane s = new  JScrollPane(t);
            f.setTitle("codice");
            f.getContentPane().add(s);
            f.setSize(400,440);
            f.setLocation(470, 250); 
             f.setVisible(true);
              }
           catch (IllegalArgumentException ee) {}
           catch (ArrayIndexOutOfBoundsException e1) {}
           catch (NullPointerException e2) {}     
            
        }

    e non mi fa nulla, sapreste darmi una dritta?
    :quote: :quote: :quote: :quote:
    quando il diavolo ti accarezza è perchè vuole la tua anima

  2. #2
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    nessuno mi può aiutare purtroppo il tutolian della sun, non mi è molto di aiuto
    :master:
    quando il diavolo ti accarezza è perchè vuole la tua anima

  3. #3
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    non avete un esempio semplice
    quando il diavolo ti accarezza è perchè vuole la tua anima

  4. #4
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    ciao ragazzi
    più o meno ho risolto la questione solo che ora devo distinguere quale colonna è stata selezionata o cliccata, per esempio se mi viene selezionata la sesta colonna mi deve richiamare il form e ho fatto in questo modo:
    codice:
    if (tab.isColumnSelected(6)==true) 
                     {    
                    tab.addMouseListener(new MouseAdapter() {
                          public void mouseClicked(MouseEvent e) {
                                try{
                                    JFrame f = new JFrame();
                                    JPanel p = new JPanel();
                                    tabellaPagina tb = new tabellaPagina("");
                                    int count=1;
                                    count = tb.contaFile(count);
                                    JTextArea t = new JTextArea(30,35);
                                    JScrollPane s = new  JScrollPane(t);
                                    f.setTitle("codice");
                                    f.getContentPane().add(s);
                                    f.setSize(400,440);
                                    f.setLocation(470, 250); 
                                     f.setVisible(true);
                                      }
                                   
                                   catch (IllegalArgumentException ee) {}
                                   catch (ArrayIndexOutOfBoundsException e1) {}
                                   catch (NullPointerException e2) {}     
                                                                }
                                                                });
                    }
                    else {System.out.println("nud");}
    il rigo rosso in teoria, se clicco la sesta colonna mi dovrebbe trasformare il

    tab.isSelected(6)

    in true, ma non me lo fa, perchè?


    grazie
    ciao
    :master: :master: :master:
    quando il diavolo ti accarezza è perchè vuole la tua anima

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Prova questo programmino:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class TestFrame extends JFrame implements MouseListener
    {
        private JTable table;
        private JScrollPane scrollPane;
    
        public TestFrame ()
        {
            super ("Test click su tabella");
    
            setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            setSize (300, 300);
    
            Object[][] elementi = { { "uno", "due", "tre" }, { "quattro", "cinque", "sei" } };
            Object[] colonne = { "A", "B", "C" };
    
            table = new JTable (elementi, colonne);
            table.addMouseListener (this);
    
            scrollPane = new JScrollPane (table);
            
            add (scrollPane);
        }
    
        public void mouseClicked (MouseEvent e)
        {
            int row = table.rowAtPoint (e.getPoint ());
            int column = table.columnAtPoint (e.getPoint ());
            
            if (row != -1 && column != -1)
            {
                JOptionPane.showMessageDialog (this, "Hai cliccato sulla cella [" + row + "," + column + "]");
            }
        }
    
        public void mousePressed (MouseEvent e) { }
        public void mouseReleased (MouseEvent e) { }
        public void mouseEntered (MouseEvent e) { }
        public void mouseExited (MouseEvent e) { }
    
    
        public static void main (String[] args)
        {
            SwingUtilities.invokeLater (new Runnable()
            {
                public void run ()
                {
                    TestFrame f = new TestFrame ();
                    f.setVisible (true);
                }
            });
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.