Documente Academic
Documente Profesional
Documente Cultură
Curs1 7 Interfete PDF
Curs1 7 Interfete PDF
Un program scris în limbajul Java este supus unei compilări în urma căreia se
obţine un cod intermediar (cod de octeţi) care este apoi interpretat şi executat de o
aplicaţie specializată, care poate fi asimilată unui procesor virtual. Această aplicaţie
2
poartă denumirea de "maşină virtuală java" (eng. Java Virtual Machine, JVM
denumită mai nou JRE – Java Runtime Environment). Codul rezultat în urma
compilării poate fi transferat şi apoi executat pe orice calculator pe care există
instalat JVM. Site-ul firmei Sun oferă spre descărcare, gratuit, aplicaţia JVM pentru
toate sistemele de operare majore.
Aplicaţiile Java pot fi realizate în mai multe moduri. Cel mai economic mod
este scrierea aplicaţiei într-un editor (Notepad este suficient) urmată de compilare şi
execuţie, ambele realizate prin comenzi în fereastra Command.
Exemplu:
compilare
executare
3
Aplicaţiile scrise în Java conţin una sau mai multe clase. De regulă clasele
sunt conţinute în fişiere distincte ale căror nume coincid cu numele claselor. Una
dintre clase va conţine metoda principală, main(), care defineşte punctul de început a
aplicaţiei.
Deşi iniţierea în Java folosind un editor simplu, compilatorul javac şi
procesorul virtual java poate fi o abordare în învăţarea limbajului, în cele ce urmează
aplicaţiile vor fi dezvoltate folosind unul dintre mediile integrate, NetBeans.
Rezultat:
Fiind derivat din C++, limbajul Java nu pune probleme dificile celor care
cunosc acest limbaj. De aceea prezentarea elementelor fundamentale ale limbajului
va fi realizată foarte succint.
Comentarii
Programele Java conţin explicaţii sub forma unor comentarii. Acestea vor
asigura în timp înţelegerea diferitelor metode şi rolul funcţional al variabilelor folosite.
Exemplu de aplicaţie scrisă folosind comentarii:
class Greutate
{
/* Clasa Greutate permite calculul greutatii ideale.
Formula folosita determina greutatea pentru barbati, pentru femei rezultatul
trebuie inmultit cu 0.9.
*/
public static void main ( String[] args )
{
int h, v; // h - inaltimea in cm si v - varsta in ani
double g; // greutatea in kg
h = 178;
v = 36;
g = 50 + 0.75 * (h-150) + 0.25 * (v - 20);
System.out.println("Greutatea ideala (barbat) = " + g + " kg");
System.out.println("Greutatea ideala (femeie) = " + 0.9*g + " kg");
} // Sfarsit main
} // Sfarsit clasa Greutate
De regulă se folosesc comentariile în linie, cel de-al doilea tip fiind folosit
frecvent în timpul depanării programelor mari şi complexe, pentru a suprima din
program anumite zone.
Comentariile care încep cu /** sunt prelucrate de aplicaţia javadoc pentru
realizarea automată a unei pagini web conţinând comentariile programatorului.
Această facilitate este folosită pentru documentarea rapidă a programelor mari,
compuse din mai multe clase.
Variabile
În Java numele unei variabile, metode sau clase poate fi orice combinaţie de
litere şi cifre, începând cu o literă. Caracterele '_' (underscore) şi '$' sunt
considerate litere şi pot intra în construcţia numelor. Nu pot fi folosite ca nume
cuvintele rezervate folosite la definirea limbajului.
Cuvânt cheie
Descriere Mărime/Reprezentare internă
pt. declarare
(numere întregi)
(numere reale)
(alte tipuri)
Spre deosebire de alte limbaje, în Java informaţiile din tabelul precedent sunt
valabile indiferent de calculatorul pe care se execută programul.
iruri
irurile pot avea două sau chiar mai multe dimensiuni. Exemplu:
int [ ] [ ] c;
c = new int [3] [4];
c[0] [2] = 17;
System.out.println("c(0,2) ="+c[0] [2]);
Exemplu:
Clasa String
Unirea mai multor obiecte de tip String anterior definite se realizează folosind
operatorul '+', astfel:
String trei;
trei=unu+" & " + doi; // rezultat "Thomas & Jerry"
Se pot defini desigur şiruri de şiruri. Declaraţia String [ ] args care apare
sistematic în lista de parametri ai metodei main() este un bun exemplu.
Literali
Exemple fundamentale:
178 int
8864L long
37.266 double
37.266D double
87.363F float
26.77e3 double
'c' char
true boolean
false boolean
Conversiile de tip
Când într-o expresie intervin operanzi de tipuri diferite, operanzii
corespunzând unui tip mai restrictiv se convertesc automat spre tipul mai general
astfel încât nu se produce pierdere de informaţie.
Dacă rezultatul unei expresii este float sau double şi este atribuit unei
variabile de tip întreg, compilatorul va sesiza posibila pierdere de informaţie şi va
semnala o eroare.
(nume-tip) expresie
expresie este convertită în tipul specificat :
x = Math.sqrt((double)n)
alfa = (float)a / j ;
int n = 5 ;
x = n++ ; x = ++n ;
atribuie 5 lui x atribuie 6 lui x
În general în Java,
exp1 op= exp2 ; echivalează cu
exp1 = exp1 op (exp2) ;
unde op este + - * / %.
Exemplu fundamental:
x *= y + 1 ;
echivalează cu :
x = x * (y + 1) ;
şi nu cu
x=x*y+1;
17
Expresiile condiţionale
Pentru a calcula expresia z = max(a, b) ;
se poate scrie
if (a > b)
max = a ;
else
max = b ;
Instrucţiunea de decidere - if
Instrucţiunea while
int contor = 1;
while ( contor <= 3 )
{
System.out.println("Contor = "+contor);
contor = contor + 1; // sau mai bine contor++
}
System.out.println("La revedere!");
Instrucţiunea do
19
Exemplu:
g = 9.81;
t = 0;
do
{
d = (g * t * t ) / 2;
System.out.println( t + " " + d);
t = t + 1;
}
while (d <= 500);
Instrucţiunea for
Instrucţiunea for este preferată ori de câte ori trebuie realizat un ciclu care
foloseşte un contor. Ea poate fi însă folosită însă în toate cazurile în care trebuie să
realizăm un ciclu, şi reprezintă o modalitate compactă şi elegantă de scriere a
acestora.
Dacă înaintea unui ciclu trebuie realizate mai multe iniţializări, acestea pot
scrise în for una după alta, despărţite prin virgule:
class Suma
{
public static void main ( String[] args )
{
int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int i, sum;
for (i=0,sum = 0; i<a.length; i++)
sum = sum + a[i];
System.out.println("Suma elementelor sirului a este: "+sum);
}
}
20
Oricare dintre cele trei părţi ale instrucţiunii for pot lipsi. Lipsa condiţiei de
reluare este echivalentă cu a scrie o condiţie care este întotdeauna adevărată.
Ieşirea dintr-un astfel de ciclu se poate face folosind instrucţiunea break.
Exemplu:
for ( ; ; )
{
..
break;
..
}
Instrucţiunea switch
switch (expresie)
{
case constanta_1 : instrucţiuni
case constanta_2 : instrucţiuni
...
default : instrucţiuni;
}
Fiecare dintre punctele de unde poate începe execuţia blocului este etichetat
printr-o constantă având valoare întreagă. Dacă expresia de testat corespunde
uneia dintre constante, execuţia blocului începe din punctul indicat de aceasta.
Cazul default este facultativ.
21
Exemplu :
switch (t)
{
case 's' :
rez = Math.sin(Math.PI * x / 180.);
System.out.println("rezultatul este : "+rez);
break;
case 'c' :
rez = Math.cos(Math.PI * x / 180.);
System.out.println("rezultatul este : "+rez);
break;
case 't' :
rez = Math.sin(Math.PI * x / 180.)/Math.cos(3.14159 * x / 180.);
System.out.println("rezultatul este : "+rez);
break;
default:
System.out.println("Caracter incorect!");
}
Vizibilitatea variabilelor
class vizvar {
zona de vizib. a
var. clasei
declaraţii variabile membre
zona de vizib. a
param. excepţiei
}
Din punct de vedere al locului declarării, o variabilă poate fi membră a clasei
(declarată în afara oricărei metode) sau locală (declarată în interiorul unei metode,
de obicei la la începutul acesteia sau la începutul unui bloc din interiorul acesteia).
Variabilele locale aparţinând unor blocuri separate sunt diferite, chiar dacă
poartă acelaşi nume. Se recomandă totuşi folosirea unor nume de variabile distincte
şi mai ales sugestive, care să ajute programatorul în urmărirea logicii programului.
Unei variabile membre a clasei i se alocă spaţiu în memorie în momentul
creării unei instanţe a clasei folosind operatorul new.
23
Notă: Dacă tabul Design nu este vizibil, tracerea la afişarea ferestrei aplicaţiei
se poate realiza si din meniul aplicaţiei (Wiew / Editors / Design).
- float - Float.parseFloat(aString)
- double - Double.parseDouble(aString)
- boolean - Boolean.valueOf(aString).booleanValue();
Conversia inversă, dintr-un tip numeric simplu în şir de caractere se poate fie
apelând metoda String.valueOf(variabila) fie mai simplu, exploatând modul în care
Java realizează concatenarea şirurilor de caractere.
Exemplu:
double v = 3.14;
String sir = "" + v;
Deoarece în expresia atribuită variabilei sir primul termen este şir, operatorul
+ va fi considerat ca fiind operator de concatenare iar variabila v va fi automat
convertită în String.
33
Casete de text
Casetele de text sunt obiecte aparţinând clasei JTextField. Coţinutul unei
casete de text este de regulă un obiect de tip String. În timpul executării programului
conţinutul casetei poate fi preluat folosind metoda getText() şi poate fi impus folosind
metoda setText(). Proprietăţile care sunt de obicei impuse sunt:
- horizontalAlignment, - mod de cadraj al şirului de caractere
- editable - dacă este posibilă scrierea în casetă sau nu. Opţiune
dezactivată pentru casetele al căror conţinut este determinat în
aplicaţie;
- font - fontul utilizat
- background - culoarea fundalului
- foreground - culoarea scrisului,
- text - conţinutul iniţial al controlului.
Proprietăţile pot fi modificate prin program, metodele cele mai frecvent
apelate fiind setBackground(), care permite impunerea culorii fundalului şi
setForeground(), care impune culoarea textului.
Butoane
Butoanele sunt controale Windows destinate declanşării unei acţiuni.
Înţelegerea modului în care se specifică acţiunea (metoda) care trebuie să fie
executată la declanşarea unui anumit eveniment este posibilă doar prin evidenţierea
unor particularităţi ale modului în care programarea obiectuală este implementată în
Java.
Declararea faptului că o clasă suprascrie metodele unei interfeţe (sau ale mai
multor interfeţe) se realizează printr-o directivă implements:
class nume_clasă implements interfaţă_1 [interfaţă_2 ...]
Exemplu :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Aşa cum deja se ştie, obiectul referit prin this este obiectul curent care în
acest mod este indicat ca fiind listener (ascultător). Metoda apelată la producerea
evenimentului (clic pe buton) denumită în programare handler de eveniment, va fi
cea conţinută în clasa căreia îi aparţine obiectul declarat ca listener.
Aceasta este modalitatea prin care se "instituie" supravegherea şi
interceptarea apăsării butoanelor butonCalcul şi butonGata.
35
clic
Rezultat posibil:
Controale cu listă
Controller
View Model
JComboBox
Controlul de tip JComboBox permite selectarea unei valori dintr-o listă
predefinită. Definirea listei se realizează de obicei în etapa de proiectare a aplicaţiei,
conţinutul acesteia fiind accesibil prin intermediul proprietăţii model, Lista poate fi
construită şi editată şi dinamic, în timpul execuţiei, folosind metodele:
44
Tip
Metoda Acţiune
returnat
void addItem(Object obj) Adaugă un element în listă
void insertItemAt(Object obj, int index) Inserează un element în listă
Object getSelectedItem() Returnează ob. selectat
int getSelectedIndex() Returnează poz. elem. selectat
void removeAllItems() Goleşte lista
void removeItem(Object obj) Suprimă prima apariţie a obj.
void removeItemAt(int index) Suprimă el.. de la poziţia index
int getItemCount() Returnează nr. de elemente
Exemple:
Să se realizeze o aplicaţie care afişează în ferestră o imagine selectată
dintr-o listă de imagini.
Pentru rezolvarea problemei se realizează o nouă aplicaţie Windows în
fereastra căreia se adaugă trei controale: două de tip JLabel şi unul de tip
JComboBox.
Pentru a putea funcţiona mai trebuie doar să se adauge clasei o metodă care
să fie apelată la schimbarea elementului din listă selectat. Evenimentul generat la
selectarea unui alt element din listă este actionPerformed.
47
JListBox
Controlul de tip JListBox permite să se selecteze o valoare sau mai multe
valori dintr-o listă predefinită. i în cazul acestui control, definirea listei poate fi
realizată în etapa de proiectare a aplicaţiei sau ulterior, în timpul execuţiei.
Dacă aplicaţia se dezvoltă folosind NetBeans, obiectul folosit ca model diferă
pentru cele două situaţii. În cazul în care lista este definită în momentul proiectării
aplicaţiei mediul va creea un obiect aparţinând unei clase interioare anonime care
implementează interfaţa AbstractListModel:
String sir;
sir = (String) listaStg.getModel().getElementAt(poz);
...
initComponents();
model_lista = new DefaultListModel();
lista.setModel(model_lista);
...
49
Exemplu:
Să se realizeze o aplicaţie care adaugă într-o listă elemente selectate într-o
altă listă.
Se presupune că prima listă, din stânga, conţine ingrediente pentru o prăitură.
Ingredientele selectate vor fi adăugate în lista din dreapta.
50
Se va modifica apoi constructorul clasei asfel încât ldr să fie asociat listei din
dreapta, listaDr.
JTable
Controlul de tip JTable este folosit pentru afişarea datelor într-o formă
tabelară. Un obiect de tip JTable realizează doar afişarea datelor, acestea fiind
conţinute într-un obiect asociat (TableModel, de regulă un tablou bidimensional).
JTable TableModel
Înaintea creării unui ibiect din clasa JTable este necesară crearea obiectului
care conţine datele. Acesta poate aparţine unei clase definite de programator, de
regulă derivată din AbstractTableModel (clasă abstractă) sau poate aparţine clasei
DefaultTableModel. În NetBeans a doua variantă este cea implicită.
În NetBeans adăugarea unui obiect din clasa JTable provoacă inserarea în
fapt a două obiecte, un jScrollPanel (container) şi un jTable conţinut în primul.
tabel.setModel(new AbstractTableModel() {
String[] colum = new String[]{"Numar", "Nume", "Localitate"};
Rezultat:
54
Notă: În Java clasa Vector este folosita pentru a creea şiruri de lungime
variabilă. Lungimea unui Vector poate creşte sau scade după nevoile aplicaţiei. În
examplul dat s-au adăugat elemente (data.add(...)) s-au extras elemente (data.get())
şi s-a folosit lungimea vectorului (data.size()).
În timpul execuţiei programului datele pe care acesta le conţine pot evolua.
Practic structurii de tip Vector care conţine datele i se adauga noi elemente sau i se
suprimă elemente. Pentru a determina punerea de acord a reprezentării grafice cu
modelul se va apela metoda updateUI(). Exemplu :
Rezultat :
Asocierea obiectului care conţine valorile (model) s-a realizat prin apelul
metodei setModel(), care are ca parametru un obiect din clasa DefaultTableModel.
Constructorul folosit are doi parametri. Primul este un tablou bidimensional de
obiecte din clasa Object iar al doilea este un şir de obiecte din clasa String (şiruri de
caractere, denumirile înscrise în capul coloanelor). În celulele unui astfel de tablou
pot fi puse obiecte de diferite naturi deoarece în Java clasa Object este rădăcina
întregii ierarhii de clase.
Observaţie : În exemplul precedent obiectul folosit ca model nu are nume.
Pentru modificarea datelor din tabel pentru a obţine o referinţă la acest obiect se va
scrie tabel1.getModel().
57
Tip
Metoda Acţiune
returnat
void addRow(Object[] obj) Adaugă modelului o linie la sfârşit
Object getValueAt(int linie, int col) Preia valoarea din poz. (linie, col)
int getRowCount() Returnează nr. de linii
void insertRow(int linie, Object[] obj) Inserează un rând în poziţia linie
void removeRow(int linie) Suprimă rândul linie
void setValueAt(Object obj, int linie, Inserează elementul obj în poziţia
int col) (linie, coloană)
void setColumnIdentifiers(String []) impune numele scris în capul
coloanelor
public Tabeleex2() {
initComponents();
tabel1.getColumn("Fumator").setCellRenderer(new AfisareBool());
tabel1.getColumn("Nr. Crt.").setCellRenderer(new AfisareInt());
tabel1.getColumn("Nr. Crt.").setPreferredWidth(40);
tabel1.getColumn("Numele si prenumele").setPreferredWidth(240);
nr = 1;
}
Clasa AfisareInt reprezintă valoarea întreagă din coloana Nr. Crt. sub forma
unui control JLabel având textul centrat pe orizontală:
nume.setText("");
fumator.setSelected(false);
Meniuri
Meniurile permit definirea unui set extins de acţiuni şi selectarea uneia dintre
ele. Pentru a defini meniul unei aplicaţii trebuie creată o bară de meniuri (obiect
aparţinând clasei JMenuBar), un ansamblu de meniuri derulante (obiecte de tip
JMenu) şi pentru fiecare meniu derulant, un ansamblu de opţiuni (obiecte aparţinând
clasei JMenuItem).
Exemplu:
60
clic
Se va selecta cu mouse-ul JMenubar şi se va realiza adăugarea sa printr-un
clic cu mouse-ul în fereastra aplicaţiei.
selectat
În continuare se va edita conţinutul barei cu meniuri folosind reprezentarea
arborescentă afişată prin selectarea tabului Inspector.
2. Se modifică numele primului meniu derulant (proprietatea text):
selectat
modificare proprietate text
Rezultat:
selectat
5. Celui de-al doilea meniu derulant i se adaugă trei opţiuni: Albastru, Rosu şi
Verde. Selactarea uneia dintre opţiuni va schimba culoarea textului cu care se
afişează denumirea imaginii.
6. Se adaugă aplicaţiei două controale din clasa JLabel. Acestea vor conţine
o imagine respectiv denumirea imaginii afişate. Denumirile controalelor vor fi
schimbate în poza şi denumire.
Rezultat:
dublu clic
Pentru ultima opţiune din primul meniu derulant (Iesire) se va adăuga apelul
metodei exit(0):
65
Pentru prima opţiune din meniul Imagini, metoda care trebuie executată este
următoarea:
Pentru prima opţiune din meniul Culori metoda care trebuie executată este
următoarea:
Ferestre de dialog
În Java ferestrele de dialog sunt controale Windows din clasa JDialog.
Controalele adăugate ulterior în fereastra de dialog se adaugă controalelor clasei de
bază.
Desenarea în Java
Interfeţele aplicaţiilor create până în prezent au inclus de regulă un container
din clasa JFrame în care au fost adăugate un ansamblu de controale Windows.
Conţinutul acestora a fost impus folosind proprietăţile lor.
Există însă cazuri în care conţinutul unui control Windows este o reprezentare
grafică a unor date ale aplicaţiei. Pentru a face acest lucru posibil este însă
66
necesară declararea unei noi clase, derivată de regulă din clasa JPanel în cadrul
căreia să fie suprascrisă metoda în care se realizează reprezentarea grafică a
obiectelor clasei. Fereastra unei astfel de aplicaţii ar putea deci conţine pe lângă
controale JPanel obişnuite, adăugate pentru a grupa controalele Windows destinate
interacţiunii cu aplicaţia, un obiect aparţinând noii clase şi care va conţine
reprezentarea grafică a datelor aplicaţiei.
Exemplu:
Să se realizeze o aplicaţie care permite desenarea în centrul unui panou
(control JPanel) a unui dreptunghi sau a unui oval având dimensiunile impuse într-o
fereastră de dialog.
1. Se crează proiectul nou denumit figuri (File / New Project / General / Java
Application):
Colecţia de clase destinată realizării interfeţei unei aplicaţii conţine două clase
care permit afişarea unei ferestre de dialog: JOptionPane şi JDialog.
JOptionPane permite afişarea a două tipuri de ferestre de dialog:
a. fereastră care conţine un şir de caractere (un mesaj) şi un buton
etichetat cu Ok sau
b. fereastră care conţine un control prin care utilizatorul poate
introduce o valoare şi două butoane, etichetate cu Ok şi Cancel.
Cel mai frecvent se foloseşte prima formă, afişarea unei astfel de ferestre fiind
realizată prin apelul metodei statice showMessage(). Exemplu:
Desenarea în Java
containerul în care este dispus se modifică, etc.) metoda paint() este apelată în mod
automat.
Aplicaţiile care conţin reprezentări grafice care trebuie realizate prin program
necesită definirea unei clase noi, derivată de regulă din JPanel. În noua clasă se va
suprascrie metoda paint(), codul acesteia realizând reprezentarea dorită. Metoda
paint() va fi apelată automat, ca şi în cazul controalelor standard, ori de câte ori este
necesar. Apelul ei direct din program este interzis. Dacă este necesară refacerea
reprezentării grafice ca urmare a modificării datelor pe baza căreia este realizată
reprezentarea, va fi apelată metoda repaint() care va forţa redesenarea prin apelul
metodei paint().
Structura unei aplicaţii Java presupune fie o alăturare de mai multe clase,
fiecare fiind conţinută într-un fişier distinct, fie realizarea unei singure clase. În a
doua variantă eventualele clase care trebuie adăugate sunt definite în interiorul
clasei aplicaţiei, fiind denumite clase interioare (inner classes).
Prima variantă prezintă avantajul portabilităţii claselor. O clasă poate fi uşor
încorporată într-o altă aplicaţie, de regulă fără a trebui modificată. Dacă totuşi se
impun unele adaptări, se va aplica soluţia clasică oferită de programarea obiectuală,
respectiv definirea unei clase derivate.
În varianta definirii unei clase interioare, metodele definite în noua clasă pot
accesa direct variabilele clasei principale. În exemplul considerat, clasa interioară va
putea accesa conţinutul controalelor h şi v.
În Java o clasă interioară poate fi teoretic inclusă oriunde. În aplicaţia
considerată clasa interioară va fi plasată înafara oricărei metode, în zona de
declaraţii a clasei figuri.
Clasa interioara se va numi panouDesen şi este definită astfel:
71
După selectarea variantei Surround with try {... din lista propusă, metoda
paint() va începe astfel:
Metodele folosite la desenare precum şi alte metode ale clasei Graphics mai
frecvent utilizate sunt prezentate în tabelul următor.
Tip
Metodă Explicaţie
returnat
void clearRect(int x, int y, int width, Umple dreptunghiul indicat prin
coordonate cu culoarea fundalului
int height)
suprafeţei pe care se desenează (un
JPanel de regulă)
void drawArc(int x, int y, int width, int height, Desenează un arc de cerc sau de
elipsă în dreptunghiul dat prin primele
int startAngle, int arcAngle)
4 argumente. Centrul arcului este în
centrul dreptunghiului iar startAngle şi
arcAngle definesc poz. de start şi
mărimea unghiului, în grade.
void drawImage(Image img, int x, int y, Include cât se poate dintr-o imagine.
Valoarea ultimului parametru poate fi
ImageObserver observer)
null.
74
void drawLine(int x1, int y1, int x2, int y2) Desenează o linie din punctul (x1, y1)
în punctul (x2, y2) folosind culoarea
curentă
void setColor(Color c) Impune culoarea folosită pentru
desenare.
void drawRect(int x, int y, int width, Desenează un dreptunghi.
int height)
int height)
void drawString(String str, int x, int y) Scrie şirul de caractere str începand
cu punctul de coord. (x, y)
void setFont(Font font) Impune fontul folosit în continuare
public figuri() {
initComponents();
supdes = new panouDesen();
supdes.setPreferredSize(new Dimension(500,300));
getContentPane().add(supdes,java.awt.BorderLayout.CENTER);
pack();
}
pune în comentariu apelul metodei repaint() şi, după introducerea unui set de
dimensuini valide se redimensionează fereastra aplicaţiei.
Applet-uri
Una dintre caracteristicile limbajului Java este faptul că permite realizarea de
miniaplicaţii care pot fi transferate prin Internet şi executate în fereastra unui browser
pentru Web. O astfel de miniaplicaţie poartă numele de applet java. Fişierul
conţinând miniaplicaţia are extensia .class şi este rezultatul compilării miniaplicaţiei.
Dacă miniaplicaţia constă din mai multe clase, în urma compilării vor rezulta mai
multe fişiere .class. Dacă la dezvoltarea miniaplicaţiei se utilizează NetBeans,
ansamblul de fişiere .class care constituie applet-ul va fi întegistrat într-un
subdirector având numele pachetului declarat la crearea aplicaţiei care trebuie inclus
în directorul site-ului (de regulă în directorul care conţine pagina web în care applet-
ul este inclus).
Includerea într-o pagină web a unui applet se realizează folosind marcajul
<applet> Exemplu:
Deoarece unui applet îi lipseşte metoda main(), pentru a-l rula în NetBeans
se va selecta în meniul contextual afişat la selectarea fişierului care conţine applet-ul
opţiunea Run File.
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
77
Rezultat:
80
Exemplu fundamental:
Să se realizeze o aplicaţie care permite introducerea într-o bază de date a
raselor de câini.
81
b. Tabelul talie :
82
c. Tabelul scop :
d. Tabelul caine :
comboTara
comboTalia
comboDestinatia
nume
jButton1 jButton2
a. iniComboTara() :
87
b. iniComboTalia() :
c. iniComboDest() :
b. Butonul Abandon
Executarea aplicaţiei
dublu clic
89