| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | ListSelectionListener og dobbelt-kald Fra : Janus | 
  Dato :  15-12-05 15:36 |  
  |   
            
 Hej NG!
 
 Jeg har tilføjet en ListSelectionListener til en ListSelectionModel 
 tilhørende et JTable.
 valueChanged(ListSelectionEvent e) bliver (desværre) kaldet 2 gange, når 
 man skifter selection af en row i mit JTable. Det er selvfølgelig logisk 
 nok, da det drejer sig om hhv en select og en de-select.
 
 Men er der ikke en smart måde at skelne mellem disse to events, da mit 
 program kun skal bruge den row, der er blevet selected?
 
 
 På forhånd tak, Janus
  
            
             |   |   
            
        
 
            
         
           Henrik Davidsen (15-12-2005) 
         
	
            | Kommentar Fra : Henrik Davidsen | 
  Dato :  15-12-05 17:27 |  
  |   
            > Men er der ikke en smart måde at skelne mellem disse to events, da mit 
 > program kun skal bruge den row, der er blevet selected?
 
 Jeg ved ikke lige om der er en smartere måde, og har heller ikke prøvet om 
 dette vil virke, men jeg ville i valueChanged metoden teste på 
 e.getFirstIndex, og sammenligne med getMinSelectedIndex på ListModel'en. 
 Hvis de er ens, må valueChanged-kaldet dreje sig om den række der er blevet 
 valgt. Hvis e.getFirstIndex og getMinSelectedIndex på listen er forskellige, 
 må e.getFirstIndex være index'et på den række der nu ikke er selected 
 længere.
 
 Dvs, at metoden blot skal returnere hvis e.getFirstIndex og 
 getMinSelectedIndex er forskellige, og ellers udføres metoden.
 
 Prøv engang (eller vent og se om der kommer mere fornuftige løsninger ;)
 
 /Sjang
 
 Ps. Hvis du arbejder med flere valgte rækker, må du lige lave noget 
 gennemløb på getFirstIndex og getLastIndes på ListSelectionEventen, og 
 sammenligne med ListModel'ens getMinSelectedIndex og getMaxSelectedIndex. 
 
 
  
            
             |   |   
            
        
 
            
         
           Filip Larsen (15-12-2005) 
         
	
            | Kommentar Fra : Filip Larsen | 
  Dato :  15-12-05 21:58 |  
  |   
            Janus skrev
 
 > Jeg har tilføjet en ListSelectionListener til en ListSelectionModel
 > tilhørende et JTable.
 > valueChanged(ListSelectionEvent e) bliver (desværre) kaldet 2 gange,
 når
 > man skifter selection af en row i mit JTable.
 
 Standard idiomet er at ignorere kald hvor e.getValueIsAdjusting() er
 sand, a la
 
 public void valueChanged(ListSelectionEvent e) {
   if (!e.getValueIsAdjusting()) {
     // .. ager på den nye selection
   }
 }
 
 
 Mvh,
 -- 
 Filip Larsen
 
 
  
            
             |   |   
            
        
 
            
         
           Janus (18-12-2005) 
         
	
            | Kommentar Fra : Janus | 
  Dato :  18-12-05 22:58 |  
  |   
            Filip Larsen wrote:
 
 > 
 > 
 > Standard idiomet er at ignorere kald hvor e.getValueIsAdjusting() er
 > sand, a la
 > 
 > public void valueChanged(ListSelectionEvent e) {
 >   if (!e.getValueIsAdjusting()) {
 >     // .. ager på den nye selection
 >   }
 > }
 > 
 > 
 > Mvh,
 
 Jæsjæs, den sad lige i øjet! Mange tak :)
 
 
 Vh Janus
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |