package panelvaihtaja; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.IOException; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import demo.ValuuttaMuunnos; import fi.jyu.mit.ohj2.Mjonot; /** * Esimerkki panelista jota voidaan käyttää sekä työasemasovelluksessa * että appletissa * @author vesal * @version 30.03.2007 * @version 08.04.2008 * */ public class PanelVaihtaja extends JPanel { private static final long serialVersionUID = -8328892229173463599L; private ValuuttaMuunnos.Valuutat valuutat = new ValuuttaMuunnos.Valuutat(); private JLabel labelPerus; private JTextField editTulos; private JLabel labelEquals; private JComboBox cbValuutta; private JTextField editRaha; /** * Create the panel */ public PanelVaihtaja() { super(); editRaha = new JTextField(); editRaha.addKeyListener(new KeyAdapter() { @Override public void keyReleased(final KeyEvent arg0) { vaihda(); } }); editRaha.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { editRaha.selectAll(); } }); editRaha.setPreferredSize(new Dimension(50, 25)); add(editRaha); cbValuutta = new JComboBox(); cbValuutta.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent e) { vaihda(); } }); add(cbValuutta); labelEquals = new JLabel(); labelEquals.setText("="); add(labelEquals); editTulos = new JTextField(); editTulos.setPreferredSize(new Dimension(50, 25)); add(editTulos); labelPerus = new JLabel(); labelPerus.setText("mk"); add(labelPerus); // } /** * Alustetaan valuutta combo ja peruvaluutta * @param url vaihtoehtoinen osoite valuutoille * @throws IOException jos lukeminen ei onnistu */ public void alustaValuutat(String url) throws IOException { String nimi = "http://users.jyu.fi/~vesal/kurssit/ohj2/luennot/09/0407ti/valuutat.dat"; if (url != null ) nimi = url; valuutat.lue(nimi); String nimet[] = valuutat.getValuuttojenNimet(); for (String jono : nimet) cbValuutta.addItem(jono); if ( nimet.length > 1 ) cbValuutta.setSelectedIndex(1); // Vaihdetaan perusvaluutan teksti labelPerus.setText(valuutat.ekanValuutannimi()); vaihda(); editRaha.selectAll(); } /** * Vaihdetaan raha-kenttään kirjoitettu rahamäärä cbValuutta listassa * valitun valuutan mukaisesti perusvaluuttaan */ private void vaihda() { double raha = Mjonot.erotaDouble(editRaha.getText(),0); double tulos = valuutat.getVaihdettuMaara((String)cbValuutta.getSelectedItem(),raha); editTulos.setText(Mjonot.fmt(tulos,4,2)); } }