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:
questo e la classe in cui mi dovrei prendere il valore....c'e il metodo evidenziatocodice: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); } }
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...

Rispondi quotando
questa applicazione