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

    problema con l'evento mouseclicked

    ciao ragazzi
    ho un problema con il MyTableModel, cioè una classe modello che visualizza meglio un JTable
    (in pratica mi carica i colori, mi visualizza i flag, ecc.), però ho un problema...
    in pratica nelle celle che mi visualizzano i flag, se li attivo con l'evento mouseclicked funziona, solo che se provo a cliccare tante volte e velocemente , la variabile che è riferita al flag cambia, mentre la parte visiva del flag no, quindi succede che magari il flag è cambiato e la variabile no...
    non cè un regolatore del mouseclicked...
    questo è il codice del modello

    codice:
     private int flag = 0; //flag 0 indica che sto utilizzando tabella pagina senza flag
       public int c=0;  
        
       public void MyTable_script(Object[][] data_script) {
           flag = 1;//flag 1 indica che sto utilizzando tabella script con flag
           this.data_script= data_script;  } 
       public void MyTableScriptNoFlag(Object[][] data_script_noflag) {
           flag = 2;//flag 2 indica che sto utilizzando tabella script senza flag
           this.data_script_noflag= data_script_noflag;  }  
       public void MyTable(Object[][] data) {
           flag = 0;//flag 0 indica che sto utilizzando tabella script senza flag
          this.data= data;} 
       public void MyTable_withflag(Object[][] data_withflag) {
           flag = 3;//flag 0 indica che sto utilizzando tabella script senza flag
          this.data_withflag= data_withflag;}
             
       public int getColumnCount() {
           int count=0;               switch (flag) {
                                            case 0: count= columnNames.length; break;
                                            case 1: count= columnNamesScript.length; break;
                                            case 2: count= columnNamesScriptNoflag.length; break;
                                            case 3: count= columnNames_withflag.length; break;
           }
           return count;   }
     
       public int getRowCount() {
           int count=0;               switch (flag) {
                                            case 0: count= data.length; break;
                                            case 1: count= data_script.length; break;
                                            case 2: count= data_script_noflag.length; break;
                                            case 3: count= data_withflag.length; break;
                                                     }
           return count;   }
        
       public String getColumnName(int col) {
            String nome=null;               switch (flag) {
                                            case 0: nome= columnNames[col]; break;
                                            case 1: nome= columnNamesScript[col]; break;
                                            case 2: nome= columnNamesScriptNoflag[col]; break;
                                            case 3: nome= columnNames_withflag[col]; break;
                                                     }
           return nome; 
           }
        
       public Object getValueAt(int row, int col) 
       {   Object nome=null;               switch (flag) {
                                            case 0: nome= data[row][col]; break;
                                            case 1: nome= data_script[row][col]; break;
                                            case 2: nome= data_script_noflag[row][col]; break;
                                            case 3: nome= data_withflag[row][col]; break;
                                                     }
           return nome; 
              
       }
       //QUESTA CLASSE MI PERMETTE DI VISUALIZZARE IL FLAG IN TABELLA 
       public Class getColumnClass(int c) {
    	   Class valore=null; 
    	   try{
                         switch (flag) {
                                            case 0: valore= getValueAt(0, c).getClass(); break;
                                            case 1: valore= getValueAt(0, c).getClass(); break;
                                            case 2: valore= getValueAt(0, c).getClass(); break;
                                            case 3: valore= getValueAt(0, c).getClass(); break;
           }
           }
           catch (NullPointerException e){
        	   errori er= new errori();
        	   er.errori(1,"");
           }
            return valore; 
       }
       
       public boolean isCellEditable(int row, int col) {
          boolean edit=false; 
            switch (flag) { 
                case 0: if (col < 0) {edit=true;} else {edit =false;} break;
                case 1: if (col < 1) {edit=true;} else {edit =false;} break;
                case 2: if (col < 0) {edit=true;} else {edit =false;} break;
                case 3: if (col < 1) {edit=true;} else {edit =false;} break;
            }
         return edit;
            
        }     
        public void setValueAt(Object value, int row, int col) {
                if (DEBUG) {
                    System.out.println("Setting value at " + row + "," + col
                                       + " to " + value
                                       + " (an instance of "
                                       + value.getClass() + ")");
                }
                
                switch (flag) { 
                case 0: data[row][col] = value; break;
                case 1: data_script[row][col] = value;  break;
                case 2: data_script_noflag[row][col] = value;  break;
                case 3: data_withflag[row][col] = value;  break;
                }
                
                
                if (DEBUG) {
                    System.out.println("New value of data:");
                    printDebugData();
                }
            } 
       private void printDebugData() {
                int numRows = getRowCount();
                int numCols = getColumnCount();
    
                for (int i=0; i < numRows; i++) {
                    System.out.print("    row " + i + ":");
                    for (int j=0; j < numCols; j++) {
                        switch (flag) { 
                case 0: System.out.print("  " + data[i][j]); break;
                case 1: System.out.print("  " + data_script[i][j]); break;
                case 2: System.out.print("  " + data_script_noflag[i][j]); break;
                 case 3: System.out.print("  " + data_withflag[i][j]); break;
                        }
                    }
                    System.out.println();
                }
                System.out.println("--------------------------");
            } 
        public void setUpSportColumn(JTable table,TableColumn colonna) {
            // colonna.setCellEditor(new DefaultCellEditor(comboBox));
            //settaggio caratteristiche della cella (renderer)        
            DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
            renderer.setToolTipText("Clicca per vedere il codice");
            renderer.setForeground(java.awt.Color.RED);  
            colonna.setCellRenderer(renderer);
            
           } 
        
        public void SetUpModifica(JTable table, TableColumn column1, TableColumn column2) {
            // colonna.setCellEditor(new DefaultCellEditor(comboBox));
            //settaggio caratteristiche della cella (renderer)        
             try{
            DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
            column1.sizeWidthToFit();
            renderer.setToolTipText("Clicca per modificare");
            renderer.setBackground(java.awt.Color.RED); 
            renderer.setEnabled(true);
            column1.setCellRenderer(renderer);
            column2.setCellRenderer(renderer);
            table.setBackground(java.awt.Color.GRAY);
             }
            catch (ClassCastException e){}
           }
    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
    uno alla volta a ripsondere...
    quando il diavolo ti accarezza è perchè vuole la tua anima

  3. #3
    Utente di HTML.it L'avatar di hdtogo
    Registrato dal
    May 2006
    Messaggi
    51
    La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perchè. In questo caso abbiamo messo insieme la teoria e la pratica: non c'è niente che funziona...e nessuno sa il perchè!!

  4. #4
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    ou moderisct :berto:
    quando il diavolo ti accarezza è perchè vuole la tua anima

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.