Documente Academic
Documente Profesional
Documente Cultură
2019
Rezolvarea temelor din laboratorul 10 – Tema 1
Utilizand clasa Cont din cursul 9, realizati o aplicatie care instantiaza doua obiecte de tip
Cont cu datele preluate de la tastatura in fereastra de dialog si le afiseaza in fereastra de
executie.
package c10;
public class Cont {
public int nr;
public String titular;
public double suma;
@Override
public String toString(){
return String.format("Cont nr: %d titular: %s suma: %.2f",nr, titular, suma);
}
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 1
(continuare)
Utilizand clasa Cont din cursul 9, realizati o aplicatie care instantiaza doua obiecte de tip
Cont cu datele preluate de la tastatura in fereastra de dialog si le afiseaza in fereastra de
executie.
2019
Rezolvarea temelor din laboratorul 10 – Tema 1
(continuare)
//Conversii date
nr=Integer.parseInt(sNr);
suma=Double.parseDouble(sSuma);
System.out.println(c1);
System.out.println(c2);
}
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 2
Realizati o aplicatie care construieste o colectie de 2 conturi. Datele despre conturi se preiau
de la tastatura cu fereastra de dialog. Se va afisa colectia in fereastra de executie.
package c10; //Afisare colectie
import javax.swing.*; for (Cont c: colectie)
public class C10 { System.out.println(c);
public static void main(String[] args) { }
int nr; }
String t,sNr,sSuma;
double suma;
Cont[] colectie = new Cont[2];
//Conversii date
nr=Integer.parseInt(sNr);
suma=Double.parseDouble(sSuma);
Realizati o aplicatie care construieste o colectie de conturi (maxim 50) . Datele despre conturi
se preiau de la tastatura cu fereastra de dialog. Terminarea introducerii conturilor are loc
atunci cand se introduce sirul vid pt. numar cont. Se va afisa colectia in fereastra de executie.
package c10; while (!gata) {
import javax.swing.*; //Introducere date
public class C10 { sNr=JOptionPane.showInputDialog("Introduceti numar cont");
public static void main(String[] args) { if (sNr.equals("")) gata=true;
int nr; else {
String t, sNr, sSuma; t=JOptionPane.showInputDialog("Introduceti titular");
double suma; sSuma=JOptionPane.showInputDialog("Introduceti suma");
Cont[] colectie = new Cont[50]; //Conversii date
int n=0; //Contor obiecte nr=Integer.parseInt(sNr);
boolean gata=false; suma=Double.parseDouble(sSuma);
//Adaugare cont in colectie
colectie[n++] = new Cont(nr, t, suma);
}
}
//Afisare colectie
for (int i=0; i< n ; i++)
System.out.println(colectie[i]);
}
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 3
(varianta 2)
while (true) {
//Introducere date
sNr=JOptionPane.showInputDialog("Introduceti numar cont");
if (sNr.equals("")) break;
t=JOptionPane.showInputDialog("Introduceti titular");
sSuma=JOptionPane.showInputDialog("Introduceti suma");
//Conversii date
nr=Integer.parseInt(sNr);
suma=Double.parseDouble(sSuma);
//Adaugare cont in colectie
colectie[n++] = new Cont(nr, t, suma);
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 4
Realizati o aplicatie care citeste dintr-un fisier text o colectie de conturi. Se afiseaza
colectia.Se introduce in colectie un nou cont preluat cu fereastra de dialog. Se afiseaza noua
colectie. Se salveaza colectia in acelasi fisier text. Se verifica fisierul text dupa salvare.
package c10;
public class Cont {
public int nr;
public String titular;
public double suma;
@Override
public String toString(){
return String.format("%d %s %.2f",nr, titular, suma);
}
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 4
(continuare)
package c10;
import javax.swing.*;
import java.io.File;
import java.util.Scanner;
import java.util.Formatter;
public class C10 {
private static Cont[] colectie = new Cont[50];
private static int n;
while(fisier.hasNext()){
p= fisier.nextLine();
t = p.split(" ");
colectie[n++] = new Cont(Integer.parseInt(t[0]),t[1] + " " + t[2], Double.parseDouble(t[3]));
}
fisier.close();
}
2019
Rezolvarea temelor din laboratorul 10 – Tema 4
(continuare)
2019
Rezolvarea temelor din laboratorul 10 – Tema 4
(continuare)
private static Cont preluareCont(){
int nr;
String t,sNr,sSuma;
double suma;
//Introducere date
sNr=JOptionPane.showInputDialog("Introduceti numar cont");
t=JOptionPane.showInputDialog("Introduceti titular");
sSuma=JOptionPane.showInputDialog("Introduceti suma");
//Conversii date
nr=Integer.parseInt(sNr);
suma=Double.parseDouble(sSuma);
2019
Interfete grafice utilizator (GUI)
O interfata utilizator grafica (graphical user interface - GUI) ofera o tehnica user-
friendly pentru a interactiona cu o aplicatie. GUI –urile sunt alcatuite din componente
GUI.
AWT (Abstract Window Toolkit) este prima GUI introdusa de java. AWT este un pachet ce
contine clase pentru a crea si manageria interfetele grafice.
import java.awt.*;
public class C10_1 {
public static void main(String[] args) {
Observatii:
Pentru a opri executia programului trebuie sa selectam optiunea Stop build/Run din
optiunea Run.
Fereastra afisata este un obiect de tip Frame. Constructorul are un argument ce
specifica titlul ferestrei.
Obiectele de tip Frame au atasat un manager de layout (layout manager) ce
manageriaza plasamentul componentelor in cadrul ferestrei, precum si modul in care se
face plasamentul si redimensionarea lor, atunci cand se redimensioneaza fereastra.
Managerul FlowLayout, dat ca parametru al metodei setLayout, pune obiectele in
fereastra unul cate unul de la stanga la dreapta , in ordinea in care ele sunt atasate
ferestrei.
Sunt create 2 obiecte de tip Button avand ca argument al constructorului, textul scris pe
fiecare buton.
Atasarea butoanelor la fereastra se face prin metoda add.
Urmeaza "packaging " pt. fereastra ( metoda pack) si afisarea (metoda show sau
setVisible) .
Un exemplu de fereastra declarata ca o clasa
distincta
Clasa de test
Componentele grafice sunt definite ca variabile instanta private, iar constructorul clasei
stabileste managerul de layout, instantiaza obiectele grafice si le adauga in fereastra.
Clasa MyWindow poate fi declarata public si specificata printr-un fisier .java distinct
Tratarea evenimentelor - interfata ActionListener
implementata in clasa ce defineste fereastra.
Vom crea o interfata grafica pentru preluarea datelor de tip Persoana si adaugarea lor
intr-o colectie de obiecte. Interfata utilizator va contine doua componente de tip
textField pentru introducerea namelui si salariului si doua buoane (Salveaza si Exit).
Salveaza va inregistra noul obiect in colectie. Exit va afisa in fereastra de executie
colectie de obiecte si apoi va termina aplicatia. Dupa salvarea fiecarui obiect,
componentele textField se vor goli.
Solutie: definim mai intai clasa publica Persoana.
package c10;
public class Persoana {
private String nume;
private int salariu;
@Override
public String toString(){
return String.format("%s salariu %d", nume,salariu);
}
}
O aplicatie pt. crearea unei colectii de
persoane utilizand o interfata grafica
(continuation)
setLayout(new FlowLayout());
add(lNume);
add(txtNume);
add(lSalariu);
add(txtSalariu);
add(salveaza);
add(exit);
add(lMesaj);
Clasa de test:
package c10;
public class C10 {
public static void main(String[] args) {
Fereastra f = new Fereastra("Curs 10");
f.pack();
f.setBounds(300,200,270,150);
f.setVisible(true);
}
}
run:
Popescu Dan salariu 3000
Ionescu Elena salariu 2800
O aplicatie pt. crearea unei colectii de
persoane utilizand o interfata grafica
(continuation)
Validari efectuate de program:
- Numele si salariul trebuiesc completate;
- Salariul trebuie sa fie numeric;