Aplet z dwiema listami wyboru choice - problem

0

Postanowiłem napisać applet do przeliczania walut, taki mało rozbudowany, ale nie o to chodzi. Czy ktoś mi może powiedzieć dlaczego w moim programie nie widzi zmian w liście wyboru choice i mi nie zmienia przelicznika? Zawsze mnoży x 2.0. Ify z danymi przelicznikami miałem też w metodzie itemStateChanged, ale było to samo. Proszę o pomoc. Poniżej wklejam kod programu. P.S proszę sięnie przejmować komentarzami bo są z innego programu :)

// Importowanie pakietów potrzebnych do dzia³ania aplikacji
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

// Klasa apletu ZAWSZE musi byæ publiczna
public class Waluty extends JApplet implements ActionListener,ItemListener{
	
	// Deklaracja zmiennych
	JPanel panel;
	JButton przelicz_butt;
	JTextField pole_tekstowe;
	JLabel wynik;
	String wartosc_pobrana;
	Choice lista_1,lista_2;
	double przelicznik;
	int wybrany_1,wybrany_2;
		
	// Metoda init - pe³ni rolê konstruktora
	public void init(){
		
		// Utworzenie nowego panelu
		// Tworzenie obiektu - panelu
		// null umo¿liwia ustawienie rozmieszczenia obiektów na panelu wg
		// programisty
		panel = new JPanel(null);
		
		// Tworzenie obiektu - pola tekstowego z przyk³adowym tekstem wpisanym
		// jako parametr
		pole_tekstowe = new JTextField("Wpisz tutaj wartoœæ któr¹ chcesz przeliczyæ");
		
		// Tworzenie obiektu - etykiety z wpisanym przyk³adowym tekstem jako
		// parametr
		wynik = new JLabel("Po przeliczeniu tutaj pojawi siê wynik");
		
		// Tworzenie 2 obiektów - przycisków z teksami w œrodku wpisanymi jako
		// parametr
		przelicz_butt = new JButton("Przelicz");
		
		Choice lista_1 = new Choice();
		Choice lista_2 = new Choice();
		
		lista_1.add("Polski Z³oty");
		lista_1.add("Funt Szterling");
		lista_1.add("Euro");
		lista_1.add("Dolar Amerykañski");
		
		lista_2.add("Polski Z³oty");
		lista_2.add("Funt Szterling");
		lista_2.add("Euro");
		lista_2.add("Dolar Amerykañski");		
		
		// Ustawienie pozycji i rozmieszczenia obiektów na panelu
		pole_tekstowe.setBounds(80,20,250,20);
		wynik.setBounds(80,60,250,30);
		przelicz_butt.setBounds(30,120,100,20);
		lista_1.setBounds(30,150,100,20);
		lista_2.setBounds(30,180,100,20);

		// Dodanie do panelu obiektów - pola tekstowego, etykiety, przycisków
		panel.add(pole_tekstowe);
		panel.add(wynik);
		panel.add(przelicz_butt);
		panel.add(lista_1);
		panel.add(lista_2);
		
		// Dodanie do przycisków obs³ugi akcji w klasie, w której siê znajduj¹
		przelicz_butt.addActionListener(this);
		lista_1.addItemListener(this);
		lista_2.addItemListener(this);
		
		// Ustawienie naszego panelu jako g³ównego
		setContentPane(panel);
		
	}
	
	// Metoda obs³uguj¹ca akcje
	public void actionPerformed(ActionEvent e){
		
		double wartosc_temp;
		String wartosc_wynikowa;
		
		// Przypisanie do zmiennej o wyniku pobrania Ÿród³a akcji
		Object o = e.getSource();
		
		// Je¿eli zosta³ wciœniêty przycisk pStart to
	    if(o==przelicz_butt){
	   
	    	wartosc_pobrana=pole_tekstowe.getText();
	    	wartosc_temp = Double.parseDouble(wartosc_pobrana);
	    	
	    if(wybrany_1==0 && wybrany_2==0)
			przelicznik=2.0;
 		
 		if(wybrany_1==0 && wybrany_2==1)
			przelicznik=3.0;
			
		if(wybrany_1==0 && wybrany_2==2)
			przelicznik=4.0;
				
		if(wybrany_1==0 && wybrany_2==3)
			przelicznik=5.0;
			
			
		if(wybrany_1==1&& wybrany_2==0)
			przelicznik=6.0;
 		
 		if(wybrany_1==1&& wybrany_2==1)
			przelicznik=7.0;
			
		if(wybrany_1==1&& wybrany_2==2)
			przelicznik=8.0;
				
		if(wybrany_1==1&& wybrany_2==3)
			przelicznik=9.0;
			
			
		if(wybrany_1==2&& wybrany_2==0)
			przelicznik=10.0;
 		
 		if(wybrany_1==2&& wybrany_2==1)
			przelicznik=11.0;
			
		if(wybrany_1==2&& wybrany_2==2)
			przelicznik=12.0;
				
		if(wybrany_1==2&& wybrany_2==3)
			przelicznik=13.0;
			
			
		if(wybrany_1==3 && wybrany_2==0)
			przelicznik=14.0;
 		
 		if(wybrany_1==3 && wybrany_2==1)
			przelicznik=15.0;
			
		if(wybrany_1==3 && wybrany_2==2)
			przelicznik=16.0;
				
		if(wybrany_1==3 && wybrany_2==3)
			przelicznik=17.0;
	    	
	    	
	    	wartosc_temp=wartosc_temp*przelicznik;
    	
	    	wartosc_wynikowa=Double.toString(wartosc_temp);
	    	wynik.setText(wartosc_wynikowa);
	    	
	    	validate();
		}
		

    }
    
    
 
     public void itemStateChanged(ItemEvent e){
		
		

		if (e.getItemSelectable() == lista_1)
			wybrany_1=lista_1.getSelectedIndex();
	
		if (e.getItemSelectable() == lista_2)
			wybrany_2=lista_2.getSelectedIndex();
	
	}
    
}
0

Błąd jest tu:

   Choice lista_1 = new Choice();
   Choice lista_2 = new Choice();

Tworzysz nowe zmienne lokalne, powinno być tak:

   lista_1 = new Choice();
   lista_2 = new Choice();

1 użytkowników online, w tym zalogowanych: 0, gości: 1