import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import static javax.swing.JOptionPane.*; class Vindu extends JFrame { private static String[][] valuta = {{"NOK", "10"},{"SEK","8.9"},{"EURO","80"},{"GBP","130"},{"USD","62"}}; //private static String[][] valuta2 = valuta; public String[] finnValutaNavn(){ String[] nyTab = new String[valuta.length]; for (int i = 0; i < valuta.length; i++ ) { nyTab[i] = valuta[i][0]; } return nyTab; } private JList valutaliste = new JList(finnValutaNavn()); //Nå er listen laget private JList valutaliste2 = new JList(finnValutaNavn()); //Nå er listen laget private int valutainn = 0; private int valutaut = 0; private int listechange = 0; private int teller = 4; //Teller antall i tabellen. private String vnavn; private String vkurs; double valutavariabel = 1; //Alle knapper etc public Vindu (String tittel) { setTitle(tittel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel ledetekst = new JLabel("Fra valuta---------------------------- Til valuta"); add(ledetekst, BorderLayout.NORTH); //Rullefelt JScrollPane rullefeltListeInn = new JScrollPane(valutaliste); add(rullefeltListeInn, BorderLayout.WEST); JScrollPane rullefeltListeUt = new JScrollPane(valutaliste2); add(rullefeltListeUt, BorderLayout.EAST); ListeboksLytter lytter = new ListeboksLytter(); valutaliste.addListSelectionListener(lytter); valutaliste2.addListSelectionListener(lytter); JButton kalkus = new JButton("Kalkuler!"); add(kalkus, BorderLayout.CENTER); JButton nyValuta = new JButton("Legg til valuta!"); add(nyValuta, BorderLayout.SOUTH); Knappelytter knappelytteren = new Knappelytter(); kalkus.addActionListener(knappelytteren); nyValuta.addActionListener(knappelytteren); pack(); } //================================================= //Lytteren fanger opp alle klikk på linjer i listeboksen private class ListeboksLytter implements ListSelectionListener { public void valueChanged(ListSelectionEvent hendelse){ //Fikk etterhvert ikke bruk for en listelytter.. } } //================================================= //Knappelytteren private class Knappelytter implements ActionListener { public void actionPerformed(ActionEvent hendelse) { String label = hendelse.getActionCommand(); //Tester om Kalkulerknappen blir trykket. if (label == "Kalkuler!"){ String stringinn = showInputDialog(null,"Hvor mye ønsker du å regne med ? "); double inn = Double.parseDouble(stringinn); double kurs1 = Double.parseDouble(valuta[valutaliste.getSelectedIndex()][1]); double kurs2 = Double.parseDouble(valuta[valutaliste2.getSelectedIndex()][1]); valutavariabel = kurs1/kurs2; double mellomregning = valutavariabel * inn; showMessageDialog(null,"For " + stringinn + " " + valuta[valutaliste.getSelectedIndex()][0] + " får du "+ mellomregning + " " + valuta[valutaliste2.getSelectedIndex()][0]); //Tester om "legg til valuta"-knappen blir trykket }else if(label == "Legg til valuta!"){ vnavn = showInputDialog(null,"Valutanavn: "); vkurs = showInputDialog(null,"Kurs i forhold til 10 norske: "); //Øker tabell-lengden med 1 String[][] nyTab = new String[valuta.length + 1][2]; for (int g = 0; g < valuta.length; g++){ for(int h = 0; h < 2; h++){ nyTab[g][h] = valuta[g][h]; } } valuta = nyTab; //Legger til verdi i den nye tabellplassen for (int i = 0; i < valuta.length; i++){ for (int j = 0; j < 2; j++){ if(valuta[i][j] == null ) { valuta[i][0] = vnavn; valuta[i][1] = vkurs; j = 2; }//If }//For }//For }//If //Oppdaterer listene valutaliste.setListData(finnValutaNavn()); valutaliste2.setListData(finnValutaNavn()); }//ActionPerformed }//Knappelytter }//Class class Oving5d { public static void main ( String[] args ) { Vindu etVindu = new Vindu ("Valutakonvertering"); etVindu.setVisible(true); } }