rendered paste bodyimport 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);
}
}