Visualizzazione dei risultati da 1 a 2 su 2

Discussione: problema JDialog

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

    problema JDialog

    ragazzi sto impazzendo... ho un errore di NullPointerException nel metodo evidendiato in neretto nel codice sottostante...il metodo si chiama finish(); questo metodo e in un classe chiamata ButtonPrestazioniPanel che vi incollo qui sotto...la cosa strana e che non ho capito e perche se la classe ProgettazioneFrame lo rendo JFrame anziche Jdialog va tutto ok...non capisco perche...

    codice:
    public class ProgettazioneFrame extends JDialog implements ActionListener{
    	public static final int DEFAULT_WIDTH = 850;
       	public static final int DEFAULT_HEIGHT = 520;
    	private Logica logica;
    	private JButton ok,annulla;
    	private ElencoPanel centerPanel;
    	private ButtonPrestazioniPanel bottoniPrestazioni;
    	private ImportoCategoriaPanel icp;
    	static double valoreTabellaA;
    	static double valoreTabellaB;
    	static double valoreTabellaB1;
    	
    	public ProgettazioneFrame(ButtonPrestazioniPanel bottoniPrestazioni,Logica logica, ImportoCategoriaPanel icp){
    		
    		setModal(true);	
    		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);
    		
    		bottoniPrestazioni.setVisible(false);
    		
    		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();
    		
    		Container c=this.getContentPane();
    		c.add(centerPanel);
    		c.add(southPanel,BorderLayout.SOUTH);
    		
    		setLocationRelativeTo(null);
    		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;
    			while(it.hasNext()){
    				tmp=it.next();
    				if(tmp.isSelected())
    				{
    					lettereTabB.addLast(mapTabB.get(tmp));
    				}	
    			}
    			
    			valoreTabellaA=logica.percentualeTabA(classeCategoria,preventivo);
    			valoreTabellaB=logica.risTabellaB(lettereTabB,classeCategoria);
    			valoreTabellaB1=logica.risTabellaB1(lettereTabB,classeCategoria);
    			bottoniPrestazioni.finish();
    			this.dispose();
    			
    			
    		}
    		else if(e.getSource()==annulla){
    			this.dispose();
    			
    		}
    		
    	}
    	public double getValueA(){
    		return valoreTabellaA;
    	}	
    	public double getValueB(){
    		return valoreTabellaB;
    	}
    	public double getValueB1(){
    		return valoreTabellaB1;
    	}
    	
    	
    }
    codice:
    public class ButtonPrestazioniPanel extends JPanel implements ActionListener {
    
    	
    	private JButton progettazione, sicurezza,sicurezza2, rilieviPlanoaltimetrici, rilieviManufatti,impattiAmbietali,pianoParticellareEspropio,supportoResponsabileDelProcedimento;
    	ProgettazioneFrame progettazioneframe;
    	SicurezzaProgettazioneJFrame sicurezzaProgettazioneJFrame;
    	ImportoCategoriaPanel icp;
    	SicurezzaDirezioniLavoriJFrame sicurezzaDirezioniLavoriJFrame;
    	RilieviPlanoAltimetrici rilieviPlanoAltimetrici;
    	StudioDiImpattoAmbientale impattiAmbientale;
    	PianiParticellareEspropio pianoParticellare;
    	SupportoResponsabileDelProcedimento supportoResponsabile;
    	
    	ButtonChek progettazioneBc, sicurezzaBc,sicurezzaBc2, rilieviPlanoaltimetriciBc, rilieviManufattiBc,impattiAmbietaliBc,pianoParticellareEspropioBc,supportoResponsabileDelProcedimentoBc;
    	
    
    	
    	public ButtonPrestazioniPanel(ImportoCategoriaPanel icp){
    		
    		this.icp=icp;
    		GridBagLayout layout = new GridBagLayout();
    	    setLayout(layout);
    		
    		
    		progettazione=new JButton("Progettazione");
    		sicurezza=new JButton("Sicurezza (D.L. 494/96) Progettazione");
    		sicurezza2=new JButton("Sicurezza (D.L. 494/96) Direzione Lavori");
    		rilieviPlanoaltimetrici=new JButton("Rilievi Planoaltimetrici");
    		rilieviManufatti=new JButton("Rilievi Manufatti");
    		impattiAmbietali=new JButton("Impatti Ambietali");
    		pianoParticellareEspropio=new JButton("Piano Particellare Espropio");
    		supportoResponsabileDelProcedimento=new JButton("Supporto Resp. Del Procedimento");
    		
    		progettazione.addActionListener(this);
    		sicurezza.addActionListener(this);
    		sicurezza2.addActionListener(this);
    		rilieviPlanoaltimetrici.addActionListener(this);
    		rilieviManufatti.addActionListener(this);
    		impattiAmbietali.addActionListener(this);
    		pianoParticellareEspropio.addActionListener(this);
    		supportoResponsabileDelProcedimento.addActionListener(this);
    		
    		progettazioneBc= new ButtonChek(progettazione);
    		sicurezzaBc= new ButtonChek(sicurezza);
    		sicurezzaBc2= new ButtonChek(sicurezza2);
    		rilieviPlanoaltimetriciBc= new ButtonChek(rilieviPlanoaltimetrici);
    		rilieviManufattiBc= new ButtonChek(rilieviManufatti);
    		impattiAmbietaliBc= new ButtonChek(impattiAmbietali);
    		pianoParticellareEspropioBc= new ButtonChek(pianoParticellareEspropio);
    		supportoResponsabileDelProcedimentoBc= new ButtonChek(supportoResponsabileDelProcedimento);
    		
    		
    		JLabel notaBene=new JLabel("<html>N.B. per inserire o modificare i dati relativi ad una
    prestazione occorre abilitare il pulsante associato
    e seccessivamente cliccarci sopra");
    		notaBene.setFont(new Font("Arial",Font.ITALIC,12));
    	
    		
    	
    		add(progettazioneBc, new GBC(0, 0).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(20,10,0,50));
    		add(sicurezzaBc, new GBC(0, 1).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(sicurezzaBc2, new GBC(0, 2).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(rilieviPlanoaltimetriciBc, new GBC(0, 3).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(rilieviManufattiBc, new GBC(0, 4).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(impattiAmbietaliBc, new GBC(0, 5).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(pianoParticellareEspropioBc, new GBC(0, 6).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,0,50));
    		add(supportoResponsabileDelProcedimentoBc, new GBC(0, 7).setWeight(10,10).setFill(GBC.HORIZONTAL).setInsets(0,10,70,50));
    
    		add(notaBene, new GBC(1, 7).setWeight(10,0).setFill(GBC.HORIZONTAL).setInsets(0,0,60,20));
    	
    	}
    	
    
    	public void actionPerformed(ActionEvent e){
    		if(e.getSource()==progettazione){
    			progettazioneframe=new ProgettazioneFrame(this,new Logica(),icp);
    		}
    		if(e.getSource()==sicurezza){
    			sicurezzaProgettazioneJFrame=new SicurezzaProgettazioneJFrame(this,new Logica(),icp);
    		}
    		if(e.getSource()==sicurezza2){
    			sicurezzaDirezioniLavoriJFrame=new SicurezzaDirezioniLavoriJFrame(this,new Logica(),icp);
    		}
    		if(e.getSource()==rilieviPlanoaltimetrici){
    			rilieviPlanoAltimetrici=new RilieviPlanoAltimetrici();
    		}
    		if(e.getSource()==impattiAmbietali){
    			impattiAmbientale=new StudioDiImpattoAmbientale(new Logica());
    		}
    		if(e.getSource()==pianoParticellareEspropio){
    			pianoParticellare=new PianiParticellareEspropio();
    		}
    		if(e.getSource()==supportoResponsabileDelProcedimento){
    			supportoResponsabile=new SupportoResponsabileDelProcedimento(new Logica ());
    		}
    	}
    	
    
    	
    	public void finish(){
    		double valueA=progettazioneframe.getValueA();
    		double valueB=progettazioneframe.getValueB();
    		double valueB1=progettazioneframe.getValueB1();
    		System.out.println("value="+valueA);
    		System.out.println("value="+valueB);
    		System.out.println("value="+valueB1);
    	}
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    ragazzi ho scoperto che se tolgo questa chiamata:

    setModal(true);

    il problema non sussiste anche se e una JDialog....

    il fatto che e a me serve questa chiamata...come devo fare...mi date una mano per favore....

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.