Kalkulator.java
Poniższe materiały zostały tu kiedyś umieszczone na potrzeby mojej grupy ze studiów. Na 99,9% nie posiadam żadnych dodatkowych materiałów związanych z tym tematem ani nie gwarantuję 100% poprawności.
Banalny program, który liczy sumę, różnicę, iloczyn i iloraz dwóch liczb.
import javax.swing.*; // wczytanie biblioteki graficznej swing import java.awt.*; // wczytanie biblioteki graficznej awt import java.awt.event.*; public class Kalkulator { public static void main(String args[]) { Okno okno=new Okno(); // tworzymy nowy obiekt typu Okno (dalej będziemy o nim mówić "okienko"), który zaraz stworzymy okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // zamknięcie okienka ma być jednoznaczne z zamknięciem programu okno.setVisible(true); // nasze okienko ma być widoczne } } class Okno extends JFrame // tworzymy nowy obiekt "Okno" { public Okno() // "konstruktor" czyli główna funkcja danej klasy o takiej samej nazwie co klasa. Określa właściwości okienka { setTitle("Kalkulator"); // Nadajemy nazwę okienka (będzie się wyświetlać na niebieskim pasku programu) setSize(160,250); // Określamy wymiary okienka w pikselach (160 szerokości, 250 wysokości) MojPanel p=new MojPanel(); // Tworzymy nowy obiekt typu "MójPanel" (dalej nazywamy go "panel"), który zaraz stworzymy Container powzaw=getContentPane(); // tworzymy obiekt "powzaw" który stanowi powierzchnię okienka. powzaw.add(p); // do tej powierzchni dodajemy panel, który stworzyliśmy dwie linijki wyżej } } class MojPanel extends JPanel // tworzymy nowy obiekt MójPanel { JTextField a; // definiujemy zmienną "a" typu "pole tekstowe" dla pierwszej liczby JTextField b; // definiujemy zmienną "b" typu "pole tekstowe" dla drugiej liczby JTextField wynik; // definiujemy zmienną "wynik" typu "pole tekstowe" dla wyniku // Zmienne te definiujemy bezpośrednio w klasie, żeby były dostępne dla wszystkich funkcji w tej klasie public MojPanel() // "konstruktor" czyli główna funkcja danej klasy o takiej samej nazwie co klasa. Tu tworzymy fizycznie nasz "panel" { setLayout(new FlowLayout(FlowLayout.LEFT)); // określamy układ elementów w panelu. // Tu: FlowLayout, czyli wszystkie elementy są wyrównane do lewej strony // każdy kolejny element będzie "doklejany" do poprzedniego z prawej strony JLabel lab1=new JLabel("Liczba a"); // Tworzymy etykietkę tekstową "lab1" add(lab1); // i dodajemy ją do naszego panelu a=new JTextField("",12); // Tworzymy nowe pole tekstowe przypisane do zdefiniowanej wcześniej zmiennej "a" add(a); // i dodajemy go do naszego panelu JLabel lab2=new JLabel("Liczba b"); // Tworzymy etykietkę tekstową "lab2" add(lab2); // i dodajemy ją do naszego panelu b=new JTextField("",12); // Tworzymy nowe pole tekstowe przypisane do zdefiniowanej wcześniej zmiennej "b" add(b); // i dodajemy go do naszego panelu JButton plus=new JButton("+"); // Tworzymy przycisk " + " o nazwie "plus" add(plus); // i dodajemy go do naszego panelu JButton minus=new JButton("-"); // Tworzymy przycisk " - " o nazwie "minus" add(minus); // i dodajemy go do naszego panelu JButton mnozenie=new JButton("*"); // Tworzymy przycisk " * " o nazwie "mnozenie" add(mnozenie); // i dodajemy go do naszego panelu JButton dzielenie=new JButton("/"); // Tworzymy przycisk " / " o nazwie "dzielenie" add(dzielenie); // i dodajemy go do naszego panelu // Mamy już elementy kalkulatora, teraz musimy stworzyć coś, co będzie ciągle monitorowało // co też się dzieje z naszymi przyciskami. Do każdego z nich stworzymy więc specjalny "podsłuch" ActionListener sl1=new Dodaj(); // Tworzymy "podsłuch" o nazwie "sl1" w postaci funkcji Dodaj() plus.addActionListener(sl1); // i podpinamy go pod przycisk o nazwie "plus" ActionListener sl2=new Odejmij(); // Tworzymy "podsłuch" o nazwie "sl2" w postaci funkcji Odejmij() minus.addActionListener(sl2); // i podpinamy go pod przycisk o nazwie "minus" ActionListener sl3=new Pomnoz(); // Tworzymy "podsłuch" o nazwie "sl3" w postaci funkcji Pomnoz() mnozenie.addActionListener(sl3); // i podpinamy go pod przycisk o nazwie "mnozenie" ActionListener sl4=new Podziel(); // Tworzymy "podsłuch" o nazwie "sl4" w postaci funkcji Podziel() dzielenie.addActionListener(sl4); // i podpinamy go pod przycisk o nazwie "dzielenie" JLabel lab3=new JLabel("wynik"); // Tworzymy etykietkę tekstową "lab1" add(lab3); // i dodajemy ją do naszego panelu wynik=new JTextField("",12); // Tworzymy nowe pole tekstowe przypisane do zdefiniowanej wcześniej zmiennej "wynik" add(wynik); // i dodajemy go do naszego panelu } class Dodaj implements ActionListener { public void actionPerformed(ActionEvent zdarzenie) // wykryj zdarzenie - kliknięcie { long n=Integer.parseInt(a.getText()); // Pobierz zawartość pola tekstowego "a", zamień na liczbę typu "long" i przypisz do zmiennej "n" long m=Integer.parseInt(b.getText()); // Pobierz zawartość pola tekstowego "b", zamień na liczbę typu "long" i przypisz do zmiennej "m" long suma=n+m; // wykonaj działanie wynik.setText(""+suma+" "); // podstaw wartość do pola tekstowego "wynik" } } class Odejmij implements ActionListener { public void actionPerformed(ActionEvent zdarzenie) // wykryj zdarzenie - kliknięcie { long n=Integer.parseInt(a.getText()); // Pobierz zawartość pola tekstowego "a", zamień na liczbę typu "long" i przypisz do zmiennej "n" long m=Integer.parseInt(b.getText()); // Pobierz zawartość pola tekstowego "b", zamień na liczbę typu "long" i przypisz do zmiennej "m" long roznica=n-m; // wykonaj działanie wynik.setText(""+roznica); // podstaw wartość do pola tekstowego "wynik" } } class Pomnoz implements ActionListener { public void actionPerformed(ActionEvent zdarzenie) // wykryj zdarzenie - kliknięcie { long n=Integer.parseInt(a.getText()); // Pobierz zawartość pola tekstowego "a", zamień na liczbę typu "long" i przypisz do zmiennej "n" long m=Integer.parseInt(b.getText()); // Pobierz zawartość pola tekstowego "b", zamień na liczbę typu "long" i przypisz do zmiennej "m" long iloczyn=n*m; // wykonaj działanie wynik.setText(""+iloczyn); // podstaw wartość do pola tekstowego "wynik" } } class Podziel implements ActionListener { public void actionPerformed(ActionEvent zdarzenie) // wykryj zdarzenie - kliknięcie { long n=Integer.parseInt(a.getText()); // Pobierz zawartość pola tekstowego "a", zamień na liczbę typu "long" i przypisz do zmiennej "n" long m=Integer.parseInt(b.getText()); // Pobierz zawartość pola tekstowego "b", zamień na liczbę typu "long" i przypisz do zmiennej "m" float iloraz=(float)n/m; // wykonaj działanie. Zwróć uwagę na typ "float". (float) przed działaniem zamienia wartość na liczbę zmiennoprzecinkową // przez co poprawnie wyświetla ułamek wynik.setText(""+iloraz); // podstaw wartość do pola tekstowego "wynik" } } }
Najnowsze posty:
- Unboxing: Topowy/TomTomowy Prezent
- Rozpakuj Topowy Prezent - konkurs świąteczny
- Tajemnicze zmiany rozkładu SKM
- #Apple World Problems: co zrobić z iPadem "3"?
- Zakaz palenia papierosów elektronicznych?