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...