Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #1

    ArrayList contenente HashMap

    Ciao a tutti, è la prima volta che posto sul forum, e sono relativamente "istruito" su Java, ma certo facendo programmini per diletto non sono un'asso.
    Ho un codice che non funziona. In sostanza dovrei caricare una ArrayList con una HashMap, in questa sono contenuti i dati relativi agli stili delle birre. Chiamo un metodo per caricare dal file i dati, faccio un ciclo prima di uscire e la AL è caricata giusta, ma poi quando nel prosieguo del codice cerco di estrarre i dati dalla AL, trovo che questa è si piena, ma con i dati relativi all'ultimo inserimento.in allegato metto il codice. So che per gli esperti sembrerà solo che un'accozzaglia di codice a vanvera, ma in genere io prima cerco di fare l'anima del programma e poi lo sistemo. Certo la programmazione ad oggetti non mi è chiarissima, però in genere forse sprecando le potenzialità di Java i codici girano. Portate pazienza....

    Non capisco come allegare il codice perciò lo incollo qui :
    codice:
    import java.awt.EventQueue;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextArea;
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.KeyEvent;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Vector;
    import javax.swing.JTextField;
    
    
    public class PGB {
    	
    	static final long serialVersionUID = 1L;
    	
    	private JTabbedPane tabbedPane;
    	private JFrame frame;
    	private JComboBox<String> cbTipoMalti,cbStiliBirre;
    	private JPanel panel1,panel2;
    	private JTextArea txValoreGravitaMalto;
    	private Vector<String> vettoreMalti = new Vector<String>();
    	private Vector<String> gravitaMalti = new Vector<String>();
    	private Vector<String> vettoreStili = new Vector<String>();
    	private HashMap<String,String> valoriStileBirra = new HashMap<>();
    	private ArrayList<HashMap<String,String>> listaStiliBirre = new ArrayList<>();
    	private JLabel lblStile,lblTipoMalti,lblGravitaMalto,lblOgLow,lblOgHigh,lblFgLow,lblFgHigh,lblSrmLow,lblSrmHigh,lblIbuLow,lblIbuHigh;
    	/**
    	 * Create the application.
    	 */
    	public PGB() {
    		initialize();
    		// TODO cbStiliBirra
    	}
    
    	/**
    	 * Initialize the contents of the frame.
    	 */
    	private void initialize() {
    		frame = new JFrame();
    		frame.setBounds(100, 100, 650, 300);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    		creaTab();
    		frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
    	}
    
    	private void creaTab() {
    		// Primo Pannello Gravita totale birra
    		
    		panel1 = new JPanel();
    		panel1.setLayout( null );
    		
    		lblStile = new JLabel("Stile Birra");
    		lblStile.setBounds(12, 12, 70, 15);
    		panel1.add(lblStile);
    		//caricaBirre(vettoreStili,listaStiliBirre,valoriStileBirra);
    		caricaBirre();
    		cbStiliBirre = new JComboBox<String>(vettoreStili);
    		cbStiliBirre.setBounds(94, 12, 281, 24);
    		cbStiliBirre.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				//JComboBox<?> jcmbType = (JComboBox<?>) e.getSource();
    				int numeroStile =(int)cbStiliBirre.getSelectedIndex();
    				String ogLowStile =(String) listaStiliBirre.get(numeroStile).get("oglow");
    				String ogHighStile =(String) listaStiliBirre.get(numeroStile).get("oghigh");
    				String fgLowStile =(String) listaStiliBirre.get(numeroStile).get("fglow");
    				String fgHighStile =(String) listaStiliBirre.get(numeroStile).get("fghigh");
    				String srmLowStile =(String) listaStiliBirre.get(numeroStile).get("srmlow");
    				String srmHighStile =(String) listaStiliBirre.get(numeroStile).get("srmhigh");
    				String ibuLowStile =(String) listaStiliBirre.get(numeroStile).get("ibulow");
    				String ibuHighStile =(String) listaStiliBirre.get(numeroStile).get("ibuhigh");
    		        lblOgLow.setText("OG LOW -> "+ogLowStile);
    		        lblOgHigh.setText("OG HIGH -> "+ogHighStile);
    		        lblFgLow.setText("FG LOW -> "+fgLowStile);
    		        lblFgHigh.setText("FG HIGH -> "+fgHighStile);
    		        lblSrmLow.setText("SRM LOW -> "+srmLowStile);
    		        lblSrmHigh.setText("SRM HIGH -> "+srmHighStile);
    		        lblIbuLow.setText("IBU LOW -> "+ibuLowStile);
    		        lblIbuHigh.setText("IBU HIGH -> "+ibuHighStile);
    			}
    		 });
    		panel1.add(cbStiliBirre);
    		
    		lblOgLow = new JLabel("OG LOW");
    		lblOgLow.setBounds(12, 45, 125, 20);
    		panel1.add(lblOgLow);
    		
    		lblOgHigh = new JLabel("OG HIGH");
    		lblOgHigh.setBounds(12, 70, 130, 20);
    		panel1.add(lblOgHigh);
    		
    		lblFgLow = new JLabel("FG LOW");
    		lblFgLow.setBounds(168, 45, 130, 20);
    		panel1.add(lblFgLow);
    		
    		lblFgHigh = new JLabel("FG HIGH");
    		lblFgHigh.setBounds(168, 70, 130, 20);
    		panel1.add(lblFgHigh);
    		
    		lblSrmLow = new JLabel("SRM LOW");
    		lblSrmLow.setBounds(323, 45, 130, 20);
    		panel1.add(lblSrmLow);
    		
    		lblSrmHigh = new JLabel("SRM HIGH");
    		lblSrmHigh.setBounds(323, 70, 130, 20);
    		panel1.add(lblSrmHigh);
    		
    		lblIbuLow = new JLabel("IBU LOW");
    		lblIbuLow.setBounds(476, 45, 130, 20);
    		panel1.add(lblIbuLow);
    		
    		lblIbuHigh = new JLabel("IBU HIGH");
    		lblIbuHigh.setBounds(476, 70, 130, 20);
    		panel1.add(lblIbuHigh);
    
    		lblTipoMalti = new JLabel("Tipo malto");
    		lblTipoMalti.setBounds( 12, 130, 76, 20 );
    		panel1.add( lblTipoMalti );
    		//caricaMalti(vettoreMalti,gravitaMalti );
    		caricaMalti();
    		cbTipoMalti = new JComboBox<String>(vettoreMalti );
    		cbTipoMalti.setBounds( 96, 130, 279, 20 );
    		cbTipoMalti.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				//JComboBox<?> jcmbType = (JComboBox<?>) e.getSource();
    		        int gravityNumber =(int)cbTipoMalti.getSelectedIndex();
    		        txValoreGravitaMalto.setText(gravitaMalti.get(gravityNumber));
    			}
    		 });
    		panel1.add(cbTipoMalti);
    
    		lblGravitaMalto = new JLabel("Gravita malto");
    		lblGravitaMalto.setBounds( 380, 130, 119, 20 );
    		panel1.add( lblGravitaMalto );
    		txValoreGravitaMalto = new JTextArea("0");
    		txValoreGravitaMalto.setBounds( 503, 130, 76, 20 );
    		txValoreGravitaMalto.setEditable(false);
    		panel1.add( txValoreGravitaMalto );
    		
    		tabbedPane.addTab("GU", panel1);
    		tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
    
    		//Secondo Pannello Calcolo IBU
    		panel2 =  new JPanel();
    		tabbedPane.addTab("IBU", panel2);
    		tabbedPane.setMnemonicAt(0, KeyEvent.VK_2);
    	}
    	//private void caricaMalti(Vector<String> vettoreMalti,Vector<String>  gravitaMalti) {
    	private void caricaMalti() {
    		// TODO Auto-generated method stub
    		String fileName ="/home/ricky/workspace1/Progettare_Grandi_Birre/file/" + "malti.txt";
    	    try{
    	    FileReader inputFile = new FileReader(fileName);
    	    BufferedReader bufferReader = new BufferedReader(inputFile);
    		String line = "";
    		String cvsSplitBy = ";";
    	    while ((line = bufferReader.readLine()) != null)   {
    	    	String[] malti = line.split(cvsSplitBy);
    	    	vettoreMalti.addElement(malti[0]);
    	    	gravitaMalti.addElement(malti[2]);
    	    }
    	    bufferReader.close();
    	    }catch(Exception e){
    	        System.out.println("Error while reading file line by line:" + e.getMessage());                      
    	    }
    	}
    	
    	//private static  ArrayList<HashMap<String,String>> caricaBirre(Vector<String> vettoreStili , ArrayList<HashMap<String,String>> listaStiliBirre, HashMap<String,String> valoriStileBirra ) {
    	private void caricaBirre() {
    		// TODO Auto-generated method stub
    		String fileName ="/home/ricky/workspace1/Progettare_Grandi_Birre/file/" + "stili.txt";
    	    try{
    	    FileReader inputFile = new FileReader(fileName);
    	    BufferedReader bufferReader = new BufferedReader(inputFile);
    		String line = "";
    		String cvsSplitBy = ",";
    		ArrayList<String> chiavi = new ArrayList<String>();
    		chiavi.add("classe");
    		chiavi.add("categoria");
    		chiavi.add("subcategoria");
    		chiavi.add("oglow");
    		chiavi.add("oghigh");
    		chiavi.add("fglow");
    		chiavi.add("fghigh");
    		chiavi.add("ibulow");
    		chiavi.add("ibuhigh");
    		chiavi.add("srmlow");
    		chiavi.add("srmhigh");
    		chiavi.add("abvlow");
    		chiavi.add("abvhigh");
    	    while ((line = bufferReader.readLine()) != null)   {
    	    	String[] birre = line.split(cvsSplitBy);
    	    	for (int a=0;a<birre.length;a++){
    	    		valoriStileBirra.put(chiavi.get(a).toString(),birre[a].toString());
    	    		if(chiavi.get(a).contains("subcategoria") ) {
    	    			vettoreStili.addElement(birre[a].toString());
    	    		}
    	    	}
    	    	listaStiliBirre.add(valoriStileBirra);
    	    }
    	    bufferReader.close();
    	    }catch(Exception e){
    	        System.out.println("Error while reading file line by line:" + e.getMessage());                      
    	    }
    	    //return listaStiliBirre;
    	}
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					PGB window = new PGB();
    					window.frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    }
    Ultima modifica di MItaly; 29-01-2014 a 01:07 Motivo: Tag

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.