Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115

    prendere il valore da un Jpanel

    ciao ragazzi ho un problemino che non riesco a risolvere...non so che cosa sbaglio....
    vi faccio il sunto della mia applicazione che ho creato:

    Ho TabbedPane con 3 finestrelle...nella prima finestra ci sono inseriti 2 JPanel che mi sono creato come classe a parte...

    nella terza finestrella ci sono dei JButton che appena viene cliccato viene aperto u JFrame dove all'interno ci sono dei JPanel...

    ora viene il bello...appena clicco sul tasto ok del frame aperto mi devo prendere un valore che e presente nel pannello della finestrella 1.

    non so se sono stato chiare ma adesso vi posto il codice e vi evidenzio le parti piu importanti

    questo e un pannello che va nella finestrella 1 e contiene altri 2 pannelli:
    codice:
    package gui;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.GridBagLayout;
    import java.text.DateFormat;
    import java.text.NumberFormat;
    import java.util.Date;
    import java.util.Locale;
    
    import javax.swing.*;
    import javax.swing.border.Border;
    import javax.swing.border.CompoundBorder;
    
    
    public class DatiPanel extends JPanel{
    	
    	private DaTiGeneraliPanel dgp;
    	private ImportoCategoriaPanel icp;
    	
    	
    	public DatiPanel(){
    		
    		dgp=new DaTiGeneraliPanel();
    		icp=new ImportoCategoriaPanel();
    		setLayout(new BorderLayout());
    		add(dgp,BorderLayout.CENTER);
    		add(icp,BorderLayout.NORTH);
    	}
    
    			
    }
    questo e la classe in cui mi dovrei prendere il valore....c'e il metodo evidenziato
    codice:
    package gui;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.*;
    import java.text.NumberFormat;
    import java.lang.*;
    
    
    
    public class ImportoCategoriaPanel extends JPanel implements ActionListener{
    	
    	JPanel importoLavoriPanel,categoriaPanel;
    	JTextArea categorieSelezionate;
    	JComboBox classeCategoria;
    	JButton add,sub;
    	JFormattedTextField importo;
    	
    
    	public ImportoCategoriaPanel(){
    		
    		importoLavoriPanel=new JPanel();
    		categoriaPanel=new JPanel();
    		categorieSelezionate=new JTextArea();
    		categorieSelezionate.setEditable(false);
    		classeCategoria=new JComboBox();
    		add=new JButton(">>");
    		sub=new JButton("<<");
    		
    		add.addActionListener(this);
    		sub.addActionListener(this);
    		
    		importoLavoriPanel.setBorder(BorderFactory.createTitledBorder(
    				BorderFactory.createLineBorder(Color.RED),
    				"Importo Lavori"));
    		
    		JLabel preventivoLabel=new JLabel("preventivo");
    		
    	
    		importo = new JFormattedTextField(new 
               InternationalFormatter(NumberFormat.getNumberInstance())
               {
                  protected DocumentFilter getDocumentFilter()
                  {
                     return filter;
                  }
                  private DocumentFilter filter = new IntFilter();
               });
    		importo.setBorder(BorderFactory.createLoweredBevelBorder());
    		importo.setValue(new Double(0.0));
         
    		
    		JPanel p1=new JPanel();
    		p1.setLayout(new BorderLayout());
    		p1.add(preventivoLabel,BorderLayout.WEST);
    		p1.add(importo);
    		importoLavoriPanel.setLayout(new BorderLayout());
    		importoLavoriPanel.add(p1,BorderLayout.NORTH);
    		
    		categoriaPanel.setBorder(BorderFactory.createTitledBorder(
    				BorderFactory.createLineBorder(Color.RED),
    				"Categorie"));
    		
    		JPanel p2=new JPanel();
    		
    		classeCategoria.addItem("I-a");
    		classeCategoria.addItem("I-b");
    		classeCategoria.addItem("I-c");
    		classeCategoria.addItem("I-d");
    		classeCategoria.addItem("I-e");
    		classeCategoria.addItem("I-f");
    		classeCategoria.addItem("I-g");
    		classeCategoria.addItem("II-a");
    		classeCategoria.addItem("I-b");
    		classeCategoria.addItem("I-c");
    		classeCategoria.addItem("III-a");
    		classeCategoria.addItem("III-b");
    		classeCategoria.addItem("III-c");
    		classeCategoria.addItem("IV-a");
    		classeCategoria.addItem("IV-b");
    		classeCategoria.addItem("IV-c");
    		classeCategoria.addItem("V");
    		classeCategoria.addItem("VI-a");
    		classeCategoria.addItem("VI-b");
    		classeCategoria.addItem("VII-a");
    		classeCategoria.addItem("VII-b");
    		classeCategoria.addItem("VII-c");
    		classeCategoria.addItem("VIII");
    		classeCategoria.addItem("IX-a");
    		classeCategoria.addItem("IX-b");
    		classeCategoria.addItem("IX-c");
    		
    		
    		p2.setLayout(new GridLayout(3,1));
    		p2.add(new JLabel("Classe-Categoria"));
    		p2.add(classeCategoria);
    		
    		JPanel addSub=new JPanel();
    		addSub.setLayout(new GridLayout(1,2));
    		addSub.add(sub);
    		addSub.add(add);
    		
    		p2.add(addSub);
    		
    		JPanel p3=new JPanel();
    		p3.setLayout(new BorderLayout());
    		p3.add(new JLabel("categorie selezionate"),BorderLayout.NORTH);
    		p3.add(new JScrollPane(categorieSelezionate));
    		
    		categoriaPanel.setLayout(new GridLayout(1,2));
    		categoriaPanel.add(p2);
    		categoriaPanel.add(p3);
    		
    		
    		setLayout(new GridLayout(1,2));
    		add(categoriaPanel);
    		add(importoLavoriPanel);
    		
    		
    	}
    	public String getClasseCategoria(){
    		return categorieSelezionate.getText();
    	}
    	public double getImporto(){
    		Object value = importo.getValue();
    		String x=value.toString();
    		return Double.parseDouble(x);
    	}
    	
    	
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==add){
    			categorieSelezionate.setText((String)classeCategoria.getSelectedItem());
    			add.setEnabled(false);
    
    		}
    		else if(e.getSource()==sub){
    			categorieSelezionate.setText("");
    			add.setEnabled(true);
    		}
    	}
    }
    codice:
    package gui;
    
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.border.Border;
    
    import logica.*;
    
    
    public class SicurezzaProgettazioneJFrame extends JFrame implements ActionListener {
    	
    	private OkAnnullaPanel okAnnullaPanel ;
    	private MaggiorazioniPanel mp;
    	private PrestazioneIncrementiPanel pic;
    	private ButtonPrestazioniPanel bottoniPrestazioni;
    	private Logica logica;
    	static double totIncrementi;
    	
    	public SicurezzaProgettazioneJFrame(ButtonPrestazioniPanel bottoniPrestazioni,Logica logica){
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setSize(400, 400);
    		this.bottoniPrestazioni=bottoniPrestazioni;
    		this.logica=logica;
    		
    		pic=new PrestazioneIncrementiPanel();
    		okAnnullaPanel=new OkAnnullaPanel();
    		mp=new MaggiorazioniPanel();
    		
    		
    		okAnnullaPanel.getAnnulla().addActionListener(this);
    		okAnnullaPanel.getOk().addActionListener(this);
    		
    		
    		setLayout(new BorderLayout());
    		Container c=this.getContentPane();
    		c.add(pic,BorderLayout.NORTH);
    		c.add(mp,BorderLayout.CENTER);
    		c.add(okAnnullaPanel,BorderLayout.SOUTH);
    		setVisible(true);
    		
    	}
    	
    	
    	public void actionPerformed(ActionEvent e){
    		if(e.getSource()==okAnnullaPanel.getOk()){
    			ImportoCategoriaPanel icp=new ImportoCategoriaPanel();
    			double importo=icp.getImporto(); //qui si trova l'errore. questa parte mi restituisce zero
    			System.out.println(importo);
    			String categoria="I-a";
    			Map<JCheckBox,String>mapfasi=pic.getMapfasi();
    			Iterator<JCheckBox>it=mapfasi.keySet().iterator();
    			LinkedList<String>fasi=new LinkedList<String>();
    			JCheckBox tmp=null;
    			while(it.hasNext()){
    				tmp=it.next();
    				if(tmp.isSelected())
    				{
    					fasi.add(mapfasi.get(tmp));
    				}	
    			}
    			LinkedList<String>incrementi=pic.getIncrementi();
    
    			int contMaggiorazioni=0;
    			LinkedList<JCheckBox>maggiorazioni=mp.getMaggiorazioni();
    			Iterator<JCheckBox>it2=maggiorazioni.listIterator();
    			JCheckBox tmp2=null;
    			while(it2.hasNext()){
    				tmp2=it2.next();
    				if(tmp2.isSelected())
    				{
    					contMaggiorazioni++;
    				}	
    			}
    			
    			totIncrementi=logica.sommaIncrementi(incrementi);
    			LinkedList<TabellaB2> risTabB2=logica.risTabellaB2(fasi,totIncrementi,contMaggiorazioni,importo,categoria);
    			
    			Iterator<TabellaB2>it3=risTabB2.listIterator();
    			while(it3.hasNext()){
    				TabellaB2 x=it3.next();
    				System.out.println(x.getFase()+" "+x.getaliquotaDiApplicazione()+" "+x.getOnorario());
    			}
    			this.dispose();			
    		}
    		else if(e.getSource()==okAnnullaPanel.getAnnulla()){
    			this.dispose();	
    		}
    	}
    }

    grazie ragazzi....conto sul vostro aiuto...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: prendere il valore da un Jpanel

    Originariamente inviato da cobraa
    codice:
    		if(e.getSource()==okAnnullaPanel.getOk()){
    			ImportoCategoriaPanel icp=new ImportoCategoriaPanel();
    			double importo=icp.getImporto(); //qui si trova l'errore. questa parte mi restituisce zero
    Beh ... ma scusa, hai appena istanziato un ImportoCategoriaPanel, nel cui costruttore istanzi i vari componenti e il JFormattedTextField che poco dopo inizializzi al valore 0.0. Che ti aspettavi di diverso??? (e che volevi fare?)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    perche volevo che all'inizio si visulizzassi il valore zero...pero quando si mette il valore e normale che non deve essere piu zero...

    cmq partendo dal fatto che tolgo questa instruzione che ovviamente inizializzata a zero e l'unico valore che puo darmi giustamente...

    codice:
    importo.setValue(new Double(0.0));
    pero poi l'errore me lo da qui...non fa il cast correnttamente??? non capisco perche....

    codice:
    public double getImporto(){
    		Object value = importo.getValue();
    		String x=value.toString();// errore  
    		return Double.parseDouble(x);
    	}

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    String x = String.valueOf( value );
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    si mi hai gia dato questa soluzione l'altro ieri...e che C..... e proprio questa applicazione

    solo che adesso l'errore si e spostato alla riga di sotto:

    non mi fa il cast...mha...


    codice:
    public double getImporto(){
    		Object value = importo.getValue();
    		String x=value.toString();
    		return Double.parseDouble(x); errore
    	}

  6. #6
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Che errore ti da?
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    Exception in thread "AWT-EventQueue-1" java.lang.NumberFormatException: For input string: "null"

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da cobraa
    Exception in thread "AWT-EventQueue-1" java.lang.NumberFormatException: For input string: "null"
    Mi sembra chiaro: il 'value' fornito da getValue() è null.

    Con value.toString() infatti ti lancerebbe NullPointerException mentre con String.valueOf(value) ti ritorna "null" che però non è parsabile come double (quindi NumberFormatException).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    e quindi cosa dovrei fare??? datemi un aiutino per favore...

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    115
    ragazzi nessuna soluzione al mio problema....non so come fare a prendere il valore...perche se inserisco un valore non devo poterlo prendere e convertirlo in un double.???

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.