Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115

    Richiamare il metodo actionPerformed

    ciao ragazzi ho il segente problema..
    ho una classe 1 ed una classe 2 nella
    classe 2 c'e il metodo actionperformed
    dove controlla listen di jcheckbox.
    vorrei chiamare dalla classe1 il metodo
    actionperfed pero non so che parematro
    gli devo passare nel metodo cioe qual
    evento?grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    1 - Usare le virgole non provoca il cancro
    2 - Usare le maiuscole non fa diventare impotenti
    3 - Usare gli apostrofi e le lettere accentate non fa diventare sterili
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157
    Originariamente inviato da Alex'87
    1 - Usare le virgole non provoca il cancro
    2 - Usare le maiuscole non fa diventare impotenti
    3 - Usare gli apostrofi e le lettere accentate non fa diventare sterili
    quoto in pieno. Leggi il regolamento su come postare per favore.

    Comunque leggiti la guida della Sun sulle actionPerformed

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    si scusa ma sono con il cellulare e sono in viaggio

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115

    ridefinisco il problema

    scusate la mia scrittura..ma ripeto ero in pulman ed ero con un cell. il discorso e questo:

    codice:
    class1{
     
        devo chiamare il metodo ActioPerformed()
    
    }
    
    class2{
    
           public void actioPerformed(ActionEvent e){
                                  ......
           }
    
    }
    io nella classe1 devo poter richiamare il metodo ActionPerformed dove ovviamente dovrei passargli l`evento. Il problema mio riguarda l`evento che dovrei passargli.

    spero di aver usato tutti i punti...

    grazie per eventuale risposta...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Anche la classe ActionEvent ha un costruttore con cui si costruisce, appunto, un oggetto di tale tipo.

    Ma prima di avviarti verso questa pratica, spiega bene

    1) Perchè mai class1 dovrebbe chiamare il metodo actionPerformed() dell'altra classe?
    2) C'è un componente particolare che deve richiamare questa actionPerformed() o cos'altro?
    3) Qual è l'effetto che vuoi ottenere da questa cosa?

    Le tre domande sopra servono a capire qual è il modo migliore per agire, perchè, a parte particolarissimi casi di implementazione di componenti personalizzate, richiamare direttamente actionPerformed() è sbagliato ed esiste un modo diverso per fare la stessa cosa.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    ok allora spiego meglio:

    l'effetto che vorrei ottenere e questo:

    nella classe 2 ci sono una ventina di JCheckBox dove c'e anche il metodo ActioPerformed. la classe 2 e solo un pannello,mentre la classe1 e una JDialog dove contiene la classe2. l'effetto è memorizzare tutte le JCheckBox che sono state selezionate in modo tale che quando un utente quando chiude e riapre il JDialog ritrova le stesse JCheckBox selezionate. Questa cosa io l'ho fatto nel JDialog.Essendo che ci sono funzioni del tipo: se la prima JCheckBox e selezionata deseleziona la 5,6,7,8,9 JCheckBox. Questo effetto quando riapro la JDialog non c'e l'ho...perche ovviamente non e richiamato il metodo actionPerformed della classe2. ora incollo tutto il codice e metto in neretto il codice diciamo piu importante

    codice:
    public class ProgettazioneFrame extends JDialog implements ActionListener{
    	public static final int DEFAULT_WIDTH = 890;
       	public static final int DEFAULT_HEIGHT = 530;
    	private Logica logica;
    	private JButton ok,annulla;
    	private ElencoPanel centerPanel;
    	private ButtonPrestazioniPanel bottoniPrestazioni;
    	private ImportoCategoriaPanel icp;
    	private double valoreTabellaA;
    	private double valoreTabellaB;
    	private double valoreTabellaB1;
    	
    	boolean []save;
    	
    	public ProgettazioneFrame(ButtonPrestazioniPanel bottoniPrestazioni,Logica logica, ImportoCategoriaPanel icp,boolean[]save){
    		
    		setModal(true);
    		this.save=save;
    		this.icp=icp;
    		this.bottoniPrestazioni=bottoniPrestazioni;
    		this.logica=logica;
    		setTitle("Progettazione");
    		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    		
    		ok=new JButton("OK");
    		annulla=new JButton("Annulla");
    		ok.addActionListener(this);
    		annulla.addActionListener(this);
    		
    		JPanel southPanel=new JPanel();
    		southPanel.setLayout(new BorderLayout());
    		JPanel p1=new JPanel();
    		p1.setLayout(new GridLayout(2,1));
    		p1.add(new JLabel("(*)prestazione richiesta in presenza di affidamento di concessione per lavori pubblici"));
    		p1.add(new JLabel("(**)prestazione richiesta in caso di appalto concorso o affidamento di concessione per lavori"));
    		
    		JPanel p2=new JPanel();
    		p2.setLayout(new GridLayout(1,2));
    		p2.add(ok);
    		p2.add(annulla);
    		
    		southPanel.add(p1);
    		southPanel.add(p2,BorderLayout.EAST);
    		
    		centerPanel=new ElencoPanel();
    		add(centerPanel);
    		add(southPanel,BorderLayout.SOUTH);
    				
    		
    		for(int i=0;i<save.length;i++){
    			Vector<JCheckBox>saves=centerPanel.getSaves();
    				JCheckBox tmp=saves.get(i);
    				tmp.setSelected(save[i]);
    		}
    		
    		
    				
    		setLocationRelativeTo(null);
    		setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    		setVisible(true);
    	}
    	
    	public void actionPerformed(ActionEvent e){
    		if(e.getSource()==ok){
    			String classeCategoria=icp.getClasseCategoria();
    			double preventivo=icp.getImporto();
    			Map<JCheckBox,String>mapTabB=centerPanel.getMap();
    			Iterator<JCheckBox>it=mapTabB.keySet().iterator();
    			LinkedList<String>lettereTabB=new LinkedList<String>();
    			JCheckBox tmp=null;
    			boolean verificato=false;
    			while(it.hasNext()){
    				tmp=it.next();
    				if(tmp.isSelected()){
    					verificato=true;
    					lettereTabB.addLast(mapTabB.get(tmp));
    					String appoggio=tmp.getName();
    					int pos=Integer.parseInt(appoggio);
    					save[pos]=true;
    				}
    			}
    			if(verificato==false){
    				JOptionPane.showConfirmDialog(ProgettazioneFrame.this,"Attenzione non è stato selezionata nessuna prestazione ","Errore",
    			               JOptionPane.CLOSED_OPTION,
    			               JOptionPane.INFORMATION_MESSAGE);
    			}
    			else{
    				valoreTabellaA=logica.percentualeTabA(classeCategoria,preventivo);
    				valoreTabellaB=logica.risTabellaB(lettereTabB,classeCategoria);
    				valoreTabellaB1=logica.risTabellaB1(lettereTabB,classeCategoria);
    				this.dispose();
    			}
    		}
    		else if(e.getSource()==annulla){
    			this.dispose();
    		}
    	}
    	public double getValueA(){
    		return valoreTabellaA;
    	}	
    	public double getValueB(){
    		return valoreTabellaB;
    	}
    	public double getValueB1(){
    		return valoreTabellaB1;
    	}
    }
    
    class ElencoPanel extends JPanel implements ActionListener{	
    	private JPanel tabB,tabB1;
    	private JCheckBox a,b,c,d,e,f,g,h,i,l,l1,m,n,o1,o2,o3,o4,o5,p,q,r1,r2,r3,r4,s,l2,l3,l4;
    	private Map<JCheckBox,String> map=new HashMap<JCheckBox,String>();
    	Vector<JCheckBox>saves=new Vector<JCheckBox>();
    	
    	
    	public ElencoPanel(){
    		
    		tabB = new JPanel();
    		tabB1 = new JPanel();
    				
    		//informazioni tabella B
    		a = new JCheckBox("a) Relazioni, planimetrie, schemi grafici");
    		a.setFont(new Font("Arial",Font.PLAIN,11));
    		b = new JCheckBox("b) Calcolo sommario spesa");
    		b.setFont(new Font("Arial",Font.PLAIN,11));
    		c = new JCheckBox("c) Relazione illustrativa, Elaborati grafici per ottenimento autorizzazioni");
    		c.setFont(new Font("Arial",Font.PLAIN,11));
    		d = new JCheckBox("d) Disciplinare elementi tecnici");
    		d.setFont(new Font("Arial",Font.PLAIN,11));
    		e = new JCheckBox("e) Computo metrico estimativo, quadro economico");
    		e.setFont(new Font("Arial",Font.PLAIN,11));
    		f = new JCheckBox("f) Relazione generale e specialistiche, elaborati grafici, calcoli esecutivi");
    		f.setFont(new Font("Arial",Font.PLAIN,11));
    		g = new JCheckBox("g) Particolari costruttivi e decorativi");
    		g.setFont(new Font("Arial",Font.PLAIN,11));
    		//"<html>Ciao
    a tutti</html>"
    		h = new JCheckBox("<html> h) Computo metrico estimativo definitivo, quadro economico,
      elenco prezzi ed eventuali analisi, quadro dell'incidenza percentuale
    della quantità di manodopera");
    		h.setFont(new Font("Arial",Font.PLAIN,11));
    		i = new JCheckBox("i) Schema di contratto, capitolato speciale d'appalto, cronoprogramma");
    		i.setFont(new Font("Arial",Font.PLAIN,11));
    		l = new JCheckBox("l) Direzioni lavori, assistenza al collaudo, prove d'officina");
    		l.setFont(new Font("Arial",Font.PLAIN,11));
    		l1 = new JCheckBox("l1) Liquidazione");
    		l1.setFont(new Font("Arial",Font.PLAIN,11));
    		
    		saves.add(a);
    		saves.add(b);
    		saves.add(c);
    		saves.add(d);
    		saves.add(e);
    		saves.add(f);
    		saves.add(g);
    		saves.add(h);
    		saves.add(i);
    		saves.add(l);
    		saves.add(l1);
    	
    		
    			
    		//informazioni tabella B1
    		m = new JCheckBox("m*) Piano economico e finanziario di massima",false);
    		m.setEnabled(false);
    		m.setFont(new Font("Arial",Font.PLAIN,11));
    		n = new JCheckBox("n**) Capitolato speciale e prestazionale");
    		n.setEnabled(false);
    		n.setFont(new Font("Arial",Font.PLAIN,11));
    		o1 = new JCheckBox("o1) Relazione di indagine geotecnica");
    		o1.setEnabled(false);
    		o1.setFont(new Font("Arial",Font.PLAIN,11));
    		o2 = new JCheckBox("o2) Relazione di indagine idrologica");
    		o2.setEnabled(false);
    		o2.setFont(new Font("Arial",Font.PLAIN,11));
    		o3 = new JCheckBox("o3) Relazione di indagine idraulica");
    		o3.setEnabled(false);
    		o3.setFont(new Font("Arial",Font.PLAIN,11));
    		o4 = new JCheckBox("o4) Relazione di indagine sismica");
    		o4.setEnabled(false);
    		o4.setFont(new Font("Arial",Font.PLAIN,11));
    		o5 = new JCheckBox("o5) Relazione di indagine archeologica");
    		o5.setEnabled(false);
    		o5.setFont(new Font("Arial",Font.PLAIN,11));
    		p = new JCheckBox("p) Studio di inserimento urbanistico");
    		p.setEnabled(false);
    		p.setFont(new Font("Arial",Font.PLAIN,11));
    		q = new JCheckBox("q**) Schema di contratto, capitolato speciale d'appalto");
    		q.setEnabled(false);
    		q.setFont(new Font("Arial",Font.PLAIN,11));
    		r1 = new JCheckBox("r1) Relazione di indagine geotecnica");
    		r1.setEnabled(false);
    		r1.setFont(new Font("Arial",Font.PLAIN,11));
    		r2 = new JCheckBox("r2) Relazione di indagine idrologica");
    		r2.setEnabled(false);
    		r2.setFont(new Font("Arial",Font.PLAIN,11));
    		r3 = new JCheckBox("r3) Relazione di indagine idraulica");
    		r3.setEnabled(false);
    		r3.setFont(new Font("Arial",Font.PLAIN,11));
    		r4 = new JCheckBox("r4) Relazioni di indagine sismica");
    		r4.setEnabled(false);
    		r4.setFont(new Font("Arial",Font.PLAIN,11));
    		s = new JCheckBox("s) Piano di manutenzione dell'opera");
    		s.setEnabled(false);
    		s.setFont(new Font("Arial",Font.PLAIN,11));
    		l2 = new JCheckBox("Controllo aggiornamento elaborati di prog.,aggionamento dei manuali d'uso");
    		l2.setEnabled(false);
    		l2.setFont(new Font("Arial",Font.PLAIN,11));
    		l3 = new JCheckBox("l3) Coordinamento e supervisione dell'ufficio di direzioni lavori");
    		l3.setEnabled(false);
    		l3.setFont(new Font("Arial",Font.PLAIN,11));
    		l4 = new JCheckBox("l4) Ufficio della direzione lavori, per addetto con qualifica di direttore operativo");
    		l4.setEnabled(false);
    		l4.setFont(new Font("Arial",Font.PLAIN,11));
    		
    		saves.add(m);
    		saves.add(n);
    		saves.add(o1);
    		saves.add(o2);
    		saves.add(o3);
    		saves.add(o4);
    		saves.add(o5);
    		saves.add(p);
    		saves.add(q);
    		saves.add(r1);
    		saves.add(r2);
    		saves.add(r3);
    		saves.add(r4);
    		saves.add(s);
    		saves.add(l2);
    		saves.add(l3);
    		saves.add(l4);
    		
    		a.setName("0");
    		b.setName("1");
    		c.setName("2");
    		d.setName("3");
    		e.setName("4");
    		f.setName("5");
    		g.setName("6");
    		h.setName("7");
    		i.setName("8");
    		l.setName("9");
    		l1.setName("10");
    		m.setName("11");
    		n.setName("12");
    		o1.setName("13");
    		o2.setName("14");
    		o3.setName("15");
    		o4.setName("16");
    		o5.setName("17");
    		p.setName("18");
    		q.setName("19");
    		r1.setName("20");
    		r2.setName("21");
    		r3.setName("22");
    		r4.setName("23");
    		s.setName("24");
    		l2.setName("25");
    		l3.setName("26");
    		l4.setName("27");
    
    				
    		
    		a.addActionListener(this);
    		b.addActionListener(this);
    		c.addActionListener(this);
    		d.addActionListener(this);
    		e.addActionListener(this);
    		f.addActionListener(this);
    		g.addActionListener(this);
    		h.addActionListener(this);
    		i.addActionListener(this);
    		l.addActionListener(this);
    		l1.addActionListener(this);
    		
    		
    		map.put(a,"a");
    		map.put(b,"b");
    		map.put(c,"c");
    		map.put(d,"d");
    		map.put(e,"e");
    		map.put(f,"f");
    		map.put(g,"g");
    		map.put(h,"h");
    		map.put(i,"i");
    		map.put(l,"l");
    		map.put(l1,"l1");
    		map.put(m,"m");
    		map.put(n,"n");
    		map.put(o1,"o1");
    		map.put(o2,"o2");
    		map.put(o3,"o3");
    		map.put(o4,"o4");
    		map.put(o5,"o5");
    		map.put(p,"p");
    		map.put(q,"q");
    		map.put(r1,"r1");
    		map.put(r2,"r2");
    		map.put(r3,"r3");
    		map.put(r4,"r4");
    		map.put(s,"s");
    		map.put(l2,"l2");
    		map.put(l3,"l3");
    		map.put(l4,"l4");
    		
    		tabB.setEnabled(false);
    		tabB1.setEnabled(false);
    		
    		JLabel preliminare2=new JLabel("Preliminare");
    		JLabel definitivo2=new JLabel("Definitivo");
    		JLabel esecutivo2=new JLabel("Esecutivo");
    		JLabel direzioniLavori2=new JLabel("Direzioni Lavori");
    		preliminare2.setFont(new Font("Arial",Font.BOLD,13));
    		
    		setLayout(new GridLayout(1,2));
    		add(tabB);
    		add(tabB1);	
    		
    	
    	}
    	
    	public void actionPerformed(ActionEvent event){
    		if(a.isSelected()||b.isSelected()){
    			m.setEnabled(true);
    			n.setEnabled(true);
    			o1.setEnabled(true);
    			o2.setEnabled(true);
    			o3.setEnabled(true);
    			o4.setEnabled(true);
    			o5.setEnabled(true);
    		}
    		else{
    			m.setEnabled(false);
    			m.setSelected(false);
    			n.setEnabled(false);
    			n.setSelected(false);
    			o1.setEnabled(false);
    			o1.setSelected(false);
    			o2.setEnabled(false);
    			o2.setSelected(false);
    			o3.setEnabled(false);
    			o3.setSelected(false);
    			o4.setEnabled(false);
    			o4.setSelected(false);
    			o5.setEnabled(false);
    			o5.setSelected(false);
    		}
    		if(c.isSelected()||d.isSelected()||e.isSelected()){
    			p.setEnabled(true);
    			q.setEnabled(true);
    			r1.setEnabled(true);
    			r2.setEnabled(true);
    			r3.setEnabled(true);
    			r4.setEnabled(true);
    		}
    		else{
    			p.setEnabled(false);
    			p.setSelected(false);
    			q.setEnabled(false);
    			q.setSelected(false);
    			r1.setEnabled(false);
    			r1.setSelected(false);
    			r2.setEnabled(false);
    			r2.setSelected(false);
    			r3.setEnabled(false);
    			r3.setSelected(false);
    			r4.setEnabled(false);
    			r4.setSelected(false);
    		}
    		if(f.isSelected()||g.isSelected()||h.isSelected()||i.isSelected()){
    			s.setEnabled(true);
    		}
    		else{
    			s.setEnabled(false);
    			s.setSelected(false);
    		}
    		if(l.isSelected()||l1.isSelected()){
    			l2.setEnabled(true);
    			l3.setEnabled(true);
    			l4.setEnabled(true);
    		}
    		else{
    			l2.setEnabled(false);
    			l2.setSelected(false);
    			l3.setEnabled(false);
    			l3.setSelected(false);
    			l4.setEnabled(false);
    			l4.setSelected(false);
    		}
    	}
    	Map<JCheckBox,String> getMap(){
    		return map;
    	}
    	Vector<JCheckBox>getSaves(){
    		return saves;
    	}
    }
    grazie...spero di essere stato chiaro....mi date un consiglio per favore....

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    risolto:

    bastava questa chiamata:

    centerPanel.actionPerformed(null);

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da cobraa
    risolto:

    bastava questa chiamata:

    centerPanel.actionPerformed(null);
    No: non è il modo corretto di programmare.

    Il modo corretto era quello di passare al costruttore del pannello un riferimento all'ActionListener in modo da poterlo aggiungere ai sotto-componenti che ne avevano bisogno.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.