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?
