Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2004, 14:38   #1
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Java, puntatori e adapter...

Mi sono scontrato con uno strano problema:

Codice:
class RicercaBloccatiAction extends AbstractAction
  {
  	
  	
  	JMenuItem tempItem ;
  	
  	RicercaBloccatiAction()
  	{
  		super("Allegati bloccati");  				
  		
  	}
  	
  	public void actionPerformed(ActionEvent e)
  	{
  		tempItem = (JMenuItem)e.getSource();
  		...
  		....
  			  		
  		TrovaAllegatiBloccatiFrame trovaAllegatiBloccatiFrame = new TrovaAllegatiBloccatiFrame(...);
  		
  		tempItem.setEnabled(false);
   	  
   	  System.out.println("appena disabilitato" + tempItem.getText());
   	     	 	
  		desktop.add(trovaAllegatiBloccatiFrame);
			trovaAllegatiBloccatiFrame.moveToFront();
  
      trovaAllegatiBloccatiFrame.addInternalFrameListener(new InternalFrameAdapter()
      {
        public void internalFrameClosing(InternalFrameEvent ife)  {
         
       	 tempItem.setEnabled(true);
       	 System.out.println("appena abilitato" + tempItem.getText());
         svuotajInternalFrameVector();
       	}
      });
  	}
  }
Praticamente a fronte della scelta da un menu dovevo aprire alcune JInternalFrame e disabilitare
la relativa voce di menu...per poi rabilitarla alla chiusura. Bene, questo codice non mi funzionava!
tempItem puntava sempre all'ultimo menu, nonostante ogni voce avesse un

Codice:
  tempMenuItem.addActionListener(new RicercaBloccatiAction());
Ho dovuto creare una classe
Codice:
  class myListener implements InternalFrameListener {
  	
  	JMenuItem menuItem;
  	
  	public myListener(JMenuItem menuItem) {
  		this.menuItem = menuItem;
  	}	
  	
  	
  	public void internalFrameClosing(InternalFrameEvent e) {
  		menuItem .setEnabled(true);
      System.out.println("appena abilitato" + menuItem .getText());
      svuotajInternalFrameVector();
  	}
  	
  	public void internalFrameActivated(InternalFrameEvent e) {}
	 	public void internalFrameClosed(InternalFrameEvent e) {}
		public void internalFrameDeactivated(InternalFrameEvent e){} 		
		public void internalFrameDeiconified(InternalFrameEvent e) {}		
		public void internalFrameIconified(InternalFrameEvent e) {}		
		public void internalFrameOpened(InternalFrameEvent e) {}  	
  }
e aggiungre il listener (e non l'adapter) al frame:
Codice:
  	myListener listener = new myListener(tempItem);
   	trovaAllegatiBloccatiFrame.addInternalFrameListener(listener);
Dato che nell'altro topic vi siete intrippati con i puntatori e le zone di memoria, mi sapete spiegare questa??
DIversa gestione dei puntatori negli adapter?'
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 13:43   #2
Passy
Senior Member
 
L'Avatar di Passy
 
Iscritto dal: Jul 2000
Città: Vignola (MO)
Messaggi: 316
Interessante Up
__________________
<Asus A8N-E Deluxe> <Amd64 3000+> <Ram 2.5 Gb> <Geffo3> <2 Maxtor 160 Gb RAID 1> <Adsl ZyXEL 645r> <ESS Maestro>
<GNU/Linux Debian Etch>
Wii 1037 4238 6261 1967
Passy è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 15:01   #3
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Sicuramente sbagli qlcosa da qlche altra parte, quel codice funziona benissimo:

Codice PHP:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import javax.swing.border.*;


class 
RicercaBloccatiAction extends AbstractAction
  
{
      
      
JDesktopPane desktop;
      
JMenuItem tempItem ;
      
      
RicercaBloccatiAction(JDesktopPane desktop)
      {
          
super("Allegati bloccati");
          
this.desktop desktop;
          
      }
      
      public 
void actionPerformed(ActionEvent e)
      {
          
tempItem = (JMenuItem)e.getSource();
    
          
TrovaAllegatiBloccatiFrame trovaAllegatiBloccatiFrame = new TrovaAllegatiBloccatiFrame(tempItem.getText());
          
trovaAllegatiBloccatiFrame.setSize(150150);
          
trovaAllegatiBloccatiFrame.setVisible(true);
          
          
          
tempItem.setEnabled(false);
         
         
System.out.println("appena disabilitato" tempItem.getText());
                     
          
desktop.add(trovaAllegatiBloccatiFrame);
            
trovaAllegatiBloccatiFrame.moveToFront();
  
      
trovaAllegatiBloccatiFrame.addInternalFrameListener(new InternalFrameAdapter()
      {
        public 
void internalFrameClosing(InternalFrameEvent ife)  {
         
            
tempItem.setEnabled(true);
            
System.out.println("appena abilitato" tempItem.getText());
         
           }
      });
      }
  }


class 
TrovaAllegatiBloccatiFrame extends JInternalFrame{

public 
TrovaAllegatiBloccatiFrame(String title){
        
super(title,
           
true//resizable
           
true//closable
           
true//maximizable
          
true);//iconifiable
          
}
}


public class 
Ciao extends JFrame{

    
JDesktopPane desktop;

    public 
Ciao(){
        
addWindowListener(new WindowAdapter(){
            public 
void windowClosing(WindowEvent e){
                
System.exit(0);
            }
        });

        
desktop = new JDesktopPane();
        
getContentPane().add(desktop);
        
setTitle("Ciao");
        
setSize(340340);
        
        
JMenuBar bar = new JMenuBar();
        
JMenu menu = new JMenu("uffa");
        
JMenuItem item = new JMenuItem("ciao 1");
        
item.addActionListener(new RicercaBloccatiAction(desktop));
        
menu.add(item);
        
bar.add(menu);
        
        
item = new JMenuItem("ciao 2");
        
item.addActionListener(new RicercaBloccatiAction(desktop));
        
menu.add(item);
        
        
item = new JMenuItem("ciao 3");
        
item.addActionListener(new RicercaBloccatiAction(desktop));
        
menu.add(item);
        
        
getContentPane().add(bar"North");

        
setLocation(00);
        
validate();
        
show();
        
    }
    
    public static 
void main(String[] args){
        new 
Ciao();
        
    }

ciao.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals

Ultima modifica di anx721 : 25-02-2004 alle 15:14.
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 16:31   #4
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
mmm...c'è da dire che il problema ce l'ho sotto java 1.1.8...mi sa che era un bacuzzo...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2004, 16:39   #5
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Non saprei, ma mi sembra strano che ci sia un simile bug, comqunue io suo 1.4.2.

Ad ogni modo prova a salvare il codice di esempio che ti ho mandato in un file Ciao.java e mandalo in esecuzione per vedere se ti funziona pure a te,

ciao
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2004, 10:24   #6
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
L'unica cosa che cambia è che i menù da disattivare e attivare li creo dinamicamente in base ad una query, con questa funzione:

Codice:
protected void populateMenu(String query,ActionListener menuAction, String actionCommand, JMenu menu ){
		
		String tempString[]={""};
		try
    {    	
	    Vector result = dbsSelect.select(query,true,-1);
	    JMenuItem tempMenuItem;

	    if(result.size()!=0)
	    {
  		  for(int i=0; i<result.size(); i++)
  		  {
  		    tempString=(String[])result.elementAt(i);
  		  	if(tempString[0].length()!=0)
  		  	{
    		    tempMenuItem=new JMenuItem(tempString[0]);
    		    tempMenuItem.addActionListener(menuAction);
    		    tempMenuItem.setActionCommand(actionCommand);
            menu.add(tempMenuItem);
          }
        }
        result.removeAllElements();
        result = null;
      }
      else
      	menu.add(new JMenuItem("no entry found"));
    }
    catch(Exception exp)
    {
		  System.out.println("impossibile creare uno dei menu degli allegati: "+exp.toString()+tempString[0]);
      JOptionPane.showMessageDialog(this,"Si è verificato qualche errore durante la creazione del menù degli atti inviati e in iter...\n"+
                                         "Il problema non dovrebbe impedire il normale svolgimento delle operazioni");
    }
    
	}
cn73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
MacBook Neo sorprende iFixit: 'Non vedev...
Venus Optics presenta due nuovi obiettiv...
AMD pubblica una guida per eseguire Open...
Tomb Raider I-III Remastered arriva su A...
X fa marcia indietro: si adeguerà...
Framework e la crisi delle memorie: terz...
Doom è ovunque: perché il ...
NVIDIA aggiorna G-Sync Pulsar: migliorat...
Portatile gaming con RTX 5060 a 1.099€: ...
6G for dummies: al MWC 2026 il CEO di Qu...
Le RAM tornano a salire di prezzo: quest...
5 robot aspirapolvere bestseller al mini...
A 59 anni il mio primo hackathon: dieci ...
Come sfruttare le Offerte di Primavera p...
NVIDIA promette un salto enorme: path tr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v