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();
}
}
});
}
}