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