Sunteți pe pagina 1din 14

Laborator 8

Utilizarea claselor de interfa SWING


1. Obiectivele lucrrii
nsuirea noiunilor de baz referitoare la componentele SWING;
nsuirea noiunilor de baz referitoare la clasele J ComboBox, J ProgressBar, J Slider;
nsuirea caracteristicilor particulare ale fiecrei clase n parte;
Construirea unei interfee cu utilizatorul care are ca obiectiv incrementarea i
decrementarea unui contor cu modificarea valorii acestuia prin intermediul unui obiect de tip bar
scal i afiarea lui ntr-un obiect de tip bar de afiare, precum i un formular de creare a unei csue
de e-mail n care ziua, luna i anul naterii se aleg prin intermediul unor obiecte de tip list
derulabil.
2. Aparatura i suporturile utilizate
PC n configuraia unitate central, monitor, tastatur;
Precizrile din prezentul ndrumar;
Manualul utilizatorului limbajului de programare J AVA;
Mediul de dezvoltare integrat NetBeans;
Documentaie on-line pe siteul http:\\java.sun.com.
3. Breviar
Exist situaii n care utilizatorul trebuie s aleag anumite valori predefinite. Aceast msur
se impune deoarece utilizatorul trebuie s respecte un anumit format al datelor introduse. Pentru a
realiza acest deziderat, clase de la interfa SWING pun la dispoziia utilizatorului lista derulabil. n
cadrul acestei liste, programatorul poate defini date de intrare formatate, astfel nct elimin
neajunsul casetelor de editare care permit introducerea de text fr a impune restricii.
Alte situaii cer ca utilizatorul s poat observa cu uurin datele de ieire i chiar a datelor
de intrare pentru aplicaie. S ne imaginm c utilizatorul trebuie s atepte up-loadul sau
descrcarea unui fiier de pe un anumit server. Acesta trebuie s aib n permanen contact vizual cu
valoarea procentual a fiierului descrcat, de exemplu. Sau, n alte situaii trebuie s introduc
anumite valori i nu dispune dect de un mouse, tastatura fiind indisponibil. Aceste situaii impun
folosirea unei bare de tip scal.
3.1. Clasa JComboBox
Ca orice component a claselor de interfa SWING, clasa JComboBox se afl n pachetul
javax.swing. Aceast clas are ca insta un obiect de tip list derulabil. Aceste tipuri de obiecte
2
permit utilizatorului selectarea unui anumit item dintr-o list de itemi, list care nu apare n totalitate,
ci progresiv, pe msur ce utlizatorul o parcurge.
n figurile 5.1 i 5.2 sunt prezentate fereastra de proprieti, respectiv fereastra cu tipurile de
evenimente pe care le suport instanele acestei clase.
Figura 5.1. Fereastra cu proprieti Figura 5.2. Fereastra cu evenimente
n continuare vor fi prezentate principalele metode implementate n clasa JComboBox:
jComboBox1.setAlignmentX(float aliniere) i jComboBox1.getAlignment() seteaz,
respectiv ntoarce, valoarea coordonatei X la care se afl lista derulabil pe form. Valoarea ntoars
de metoda getAlignment() este o valoare real;
jComboBox1.setAlignmentY(float aliniere) i jComboBox1.getAlignment() au aceleai
funcii ca i metodele de aliniere dup coordonata X;
jComboBox1.setBackground(Color bg) i jComboBox1.getBackground() seteaz, respectiv
ntoarce, culoarea de fond a listei derulabile, aa cum va apare la rularea aplicaiei (culoarea de fond
reprezint culoarea din interiorul listei, adic a spaiului n care vor fi afiai itemii);
jComboBox1.setEnabled(boolean b) are ca efect activarea sau dezactivarea listei derulabile,
n funcie de valoarea pe care o ia argumentul logic b;
3
jComboBox1.setFont(Font font) i jComboBox1.getFont() seteaz, respectiv ntoarce, fontul
care se va folosi, respectiv a fost folosit, pentru a afiarea itemilor din lista derulabil;
jComboBox1.setForeground(Color fg) i jComboBox1.getForeground() seteaz, respectiv
ntoarce, culoarea textului care este, respectiv va fi, folosit la afiarea itemilor din lista derulabil;
jComboBox1.setLocation(int x, int y) i jComboBox1.getLocation() seteaz, respectiv
ntoarce, valorile coordonatelor x i y la care se va poziiona, respectiv la care se afl poziionat,
colul stnga sus al listei derulabile;
jComboBox1.setVisible(boolean aflag) are ca efect setarea proprietii de vizibilitate sau
invizibilitate a listei derulabile, n funcie de valoarea pe care o ia argumentul aflag. Dac metoda
setEnabled(boolean b) avea ca efect inaccesibilitatea listei pentru utilizator, metoda
setVisible(boolean true) va avea ca efect tergerea logic a acesteia de pe form. Altfel spus,
aceast metod va ascunde lista derulabil respectiv, astfel nct utilizatorul nu o mai poate vedea
pe form pn cnd acesta nu este fcut vizibil din alt metod sau clas;
jComboBox1.setEditable(boolean b) are ca efect setarea sau desetarea proprietii de editare
a listei. Altfel spus, atunci cnd valoarea parametrului b este true, utilizatorul poate introduce un
anumit text n list, n caz contrar acesta neavnd drept de modificare a textului din aceasta. Altfel
spus, dac valoarea parametrului b este false utilizatorul nu va avea drept de modificare asupra
itemilor din lista derulabil.
Valorile afiate n lista derulabil este bine s fie introduse din fereastra de proprieti prin
modificarea parametrilor itemx (x reprezint indexul itemului respectiv) din proprietatea model. Dac
se apas pe butonul aferent acestei proprieti, va apare o caset de dialog n care programatorul
poate introduce valorile dorite, tergerea anumitor valori, precum i selecia unei anumite poziii n
list pentru o nou valoare adugat sau tears. De asemenea, prin setarea unei anumite valori
pentru proprietatea maximumRowCount programatorul va specifica aplicaiei cte linii s afieze
atunci cnd lista derulabil este selectat de ctre utilizator. Prin intermediul proprietii
selectedIndex programatorul poate specifica ca itemul cu indexul specificat s apar implicit la
iniializarea listei. Acelai lucru se poate specifica i prin selectarea unui anumit item cu ajutorul
proprietii selectedItem.
Un tip de eveniment ce poate fi asociat acestui tip de obiect este evenimentul de tip
MouseListner, care are implementate mai multe metode precum: mouseClicked (implementeaz o
aciune la efectuarea unui click asupra obiectului), mouseEntered (implementeaz o aciune la
poziionarea mouseului n interiorul obiectului), mouseExited (implementeaz o aciune la ieirea
mouseului din interiorul obiectului), mouseMoved (implementeaz o aciune la micarea mouseului,
indiferent de poziia acestuia n cadrul aplicaiei) i altele. Cel mai important eveniment care se poate
asocia obiectului este un eveniment de selecie. Adic, la selectarea unui anumit item din list, s se
implementeze o anumit aciune, de exemplu s se asocieze valoarea itemului unei anumite variabile.
Aceast aciune se poate implementa ntr-un handler asociat unui eveniment de tip actionPerformed.
3.2. Clasa JProgressBar
Instana clasei JProgressBar se numete bar de afiare. Aceasta permite utilizatorului s fie
n contact vizual cu valoarea care este desenat n interiorul acestui obiect n permanen. Aa cum a
fost menionat mai sus, acest lucru trebuie realizat atunci cnd este vorba despre descrcarea
fiierelor de pe un anumit server sau atunci cnd se ateapt o ncrcare de pagin sau atunci cnd
este vorba despre o instalare i dorim s fim n permanen informai asupra progresului aciunii
respective.
n continuare, n figurile 5.3 i 5.4 sunt prezentate fereastra de proprieti, respectiv fereastra
cu evenimente.
4
Figura 5.3.a. Fereastra de proprieti Figura 5.3.b. Fereastra de proprieti (cont.)
5
Figura 5.4. Fereastra cu evenimente
n continuare vor fi prezentate principalele metode imlementate n clasa JProgressBar:
jProgressBar1.setAlignmentX(float aliniere) i jProgressBar1.getAlignment() seteaz,
respectiv ntoarce, valoarea coordonatei X la care se afl bara de afiare pe form. Valoarea ntoars
de metoda getAlignment() este o valoare real;
jProgressBar1.setAlignmentY(float aliniere) i jProgressBar1.getAlignment() au aceleai
funcii ca i metodele de aliniere dup coordonata X;
jProgressBar1.setBackground(Color bg) i jProgressBar1.getBackground() seteaz,
respectiv ntoarce, culoarea de fond a barei, aa cum va apare aceasta la rularea aplicaiei;
jProgressBar1.setEnabled(boolean b) are ca efect activarea sau dezactivarea barei de
afiare, n funcie de valoarea pe care o ia argumentul logic b;
jProgressBar1.setFont(Font font) i jProgressBar1.getFont() seteaz, respectiv ntoarce,
fontul care se va folosi, respectiv a fost folosit, pentru a afiarea textului asociat valorii care este
afiat pe bara de afiare;
jProgressBar1.setForeground(Color fg) i jProgressBar1.getForeground() seteaz,
respectiv ntoarce, culoarea textului care este, respectiv va fi, afiat pe bara de afiare, corespunztor
valorii curente afiate pe bar;
jProgressBar1.setLocation(int x, int y) i jProgressBar1.getLocation() seteaz, respectiv
ntoarce, valorile coordonatelor x i y la care se va poziiona, respectiv la care se afl poziionat,
colul stnga sus al barei de afiare;
jProgressBar1.setString(String text) i jProgressBar1.getText() seteaz, respectiv ntoarce,
textul care va fi afiat, respectiv care este afiat, pe bara de afiare, corespunztor valorii curente;
jProgressBar1.setStringPainted(boolean b) afieaz sau nu valoarea curent pe bara de
afiare. Afiarea, respectiv ascunderea, textului afiat pe bar se realizeaz atunci cnd parametrul b
ia valoarea logic true, respectiv false;
jProgressBar1.setOrientation(int orientare) i jProgressBar1.getOrientation() seteaz,
respectiv ntoarce, orientarea barei de afiare. Parametrii folosii pentru aceast metod sunt: 0 pentru
orientare orizontal i 1 pentru orientare vertical;
jProgressBar1.setMaximum(int max) i jProgressBar1.getMaximum() seteaz, respectiv
ntoarce, valoarea maxim care se poate desena pe bara de afiare;
jProgressBar1.setMinimum(int min) i jProgressBar1.getMinimum() seteaz, respectiv
ntoarce, valoarea minim care se poate desena pe bara de afiare;
jProgressBar1.setValue(int n) i jProgressBar1.getValue() seteaz, respectiv ntoarce,
valoarea curent care se va fia, respectiv care este afiat, pe bara de afiare;
jProgressBar1.setVisible(boolean aflag) are ca efect setarea proprietii de vizibilitate sau
invizibilitate a barei de afiare, n funcie de valoarea pe care o ia argumentul aflag. Dac metoda
setEnabled(boolean b) avea ca efect inaccesibilitatea barei pentru utilizator, metoda
setVisible(boolean true) va avea ca efect tergerea logic a acesteia de pe form. Altfel spus,
aceast metod va ascunde bara de afiare respectiv, astfel nct utilizatorul nu o mai poate vedea pe
form pn cnd acesta nu este fcut vizibil din alt metod sau clas.
Acest tip de obiecte prezint o restricie, i anume nu se pot atribui alte valori dect ntregi.
Aadar, programatorul nu poate folosi pentru afiare dect valori ntregi.
Fiind folosit, ca i n cazul etichetei, ca obiect de afiare a unei informaii pentru utilizator,
acest obiect nu ar trebui s aib asociat niciun eveniment. n cazul n care aplicaia solicit ca s se
implementeze o anumit aciune la apariia unui eveniment asociat obiectului, atunci va trebui
implementat o anumit rutin care s trateze apariia respectivului eveniment.
6
3.3. Clasa JSlider
Instana clasei JSlider este o bar de tip scal, care poate fi fie folosit pentru introducerea
anumitor valori de ctre utilizator, fie pentru afiarea anumitor valori pentru acesta, fie att pentru
introducere, ct i pentru afiare. Acest obiect are ca proprietate fundamental faptul c poate fi
modificat starea acestuia de ctre utilizator printr-un click. Pe aceast bar se pot desena diviziuni n
funcie de dorina utilizatorului, precum i afiarea anumitor valori asociate acestor diviziuni.
Diviziunile sunt de dou tipuri: minorTickSpacing i majorTickSpacing. Astfel se obine o divizare a
intervalului dat de valorile minim i maxim, care, de asemenea, pot fi introduse de ctre
programator.
n continuare, vor fi prezentate ferestrele cu proprieti i evenimente ale unei instane a
clasei JSlider (figura 4.5 i 4.6).
Figura 5.5.a. Fereastra de proprieti Figura 5.5.b. Fereastra de proprieti (cont.)
7
Figura 5.6. Fereastra cu evenimente
n continuare vor fi prezentate principalele metode implementate n clasa JSlider:
jSlider1.setAlignmentX(float aliniere) i jSlider1.getAlignment() seteaz, respectiv
ntoarce, valoarea coordonatei X pe care se afl bara de tip scal pe form. Valoarea ntoars de
metoda getAlignment() este o valoare real;
jSlider1.setAlignmentY(float aliniere) i jSlider1.getAlignment() au aceleai funcii ca i
metodele de aliniere dup coordonata X;
jSlider1.setBackground(Color bg) i jSlider1.getBackground() seteaz, respectiv ntoarce,
culoarea de fond a barei de tip scal, aa cum va aprea la rularea aplicaiei;
jSlider1.setEnabled(boolean b) are ca efect activarea sau dezactivarea barei, n funcie de
valoarea pe care o ia argumentul logic b;
jSlider1.setFont(Font font) i jSlider1.getFont() seteaz, respectiv ntoarce, fontul care se va
folosi, respectiv a fost folosit, pentru a fi afiat textul care nsoete diviziunile desenate pe bar;
jSlider1.setForeground(Color fg) i jSlider1.getForeground() seteaz, respectiv ntoarce,
culoarea textului care este, respectiv va fi afiat, n dreptul diviziunilor desenate pe bar;
jSlider1.setLocation(int x, int y) i jSlider1.getLocation() seteaz, respectiv ntoarce,
valorile coordonatelor x i y la care se va poziiona, respectiv la care se afl poziionat, colul stnga
sus al barei de tip scal;
jSlider1.setMaximum(int max) i jSlider1.getMaximum() seteaz, respectiv ntoarce,
valoarea maxim care va fi, respectiv care este, desenat pe bar;
jSlider1.setMinimum(int min) i jSlider1.getMinimum() seteaz, respectiv ntoarce,
valoarea minim care va fi, respectiv care este, desenat pe bar;
jSlider1.setMajorTickSpacing(int Mtick) i jSlider1.getMajorTickSpacing() seteaz,
respectiv ntoarce, distana la care se vor desena pe bar diviziunile mari;
jSlider1.setMinorTickSpacing(int mtick) i jSlider1.getMinorTickSpacing() seteaz,
respectiv ntoarce, distana la care se vor desena pe bar diviziunile mici;
jSlider1.setOrientation(int orientare) i jSlider1.getOrientation() seteaz, respectiv
ntoarce, orientarea barei de tip scal. Dac valoarea parametrului orientare este 0, atunci bara va fi
desenat orizontal, iar dac este 1, atunci bara va fi desenat vertical;
8
jSlider1.setPaintLabels(boolean b) i jSlider1.getPaintLabels() seteaz, respectiv ntoarce,
dac etichetele diviziunilor sunt, respectiv au fost, sau nu afiate;
jSlider1.setPaintTicks(boolean b) i jSlider1.getPaintTicks() seteaz, respectiv ntoarce,
dac diviziunile sunt, respectiv au fost, desenate;
jSlider1.setValue(int n) i jSlider1.getValue() seteaz, respectiv ntoarce, valoarea curent
care va fi, respectiv care este, afiat pe bara de tip scal;
jSlider1.setVisible(boolean aflag) are ca efect setarea proprietii de vizibilitate sau de
invizibilitate a barei, n funcie de valoarea pe care o ia argumentul aflag. Dac metoda
setEnabled(boolean b) avea ca efect inaccesibilitatea obiectului pentru utilizator, metoda
setVisible(boolean true) va avea ca efect tergerea logic a acestuia de pe form. Altfel spus,
aceast metod va ascunde obiectul respectiv, astfel nct utilizatorul nu l mai poate vedea pe form
pn cnd acesta nu este fcut vizibil din alt metod sau clas.
Ca i n cazul clasei JProgressBar, clasa JSlider prezint restricia conform creia nu se pot
folosi dect variabile de tip ntreg. n cazul n care este necesar lucrul cu valori reale, se va folosi o
conversie a valorii respective n procente. Acest lucru se poate realiza numai n cazul n care plaja de
valori cu care se lucreaz este cunoscut. Dac nu, se vor afia valori rotunjite, valorile folosite fiind
transformate din tipul de date real n tipul de date ntreg.
Acestui tip de obiect i se pot asocia mai multe tipuri de evenimente, i anume: realizarea unui
click pe obiect (mouseClicked), poziionarea mouseului deasupra obiectului (mouseEntered),
poziionarea mouseului n afara obiectului (mouseExited), schimbarea poziiei mouseului
(mouseMoved), realizarea unui click prelungit (n timpul cruia realizm schimbarea valorii) pe
obiect (mousePressed), eliberarea mouseului dup realizarea unui click prelungit (mouseReleased),
acionarea rotiei mouseului (mouseWheelMoved) i altele. n general, este indicat s se foloseasc
evenimentul de tip mouseReleased.
4. Desfurarea lucrrii
Prima aplicaie presupune continuarea construirii aplicaiei de la lucrarea precedent astfel: n
locul casetei de editare asociat etichetei data naterii se vor plasa trei obiecte de tip list derulabil,
unul pentru dat, unul pentru lun i unul pentru anul naterii.
Se definesc aceleai restricii ca la aplicaia formula din lucrarea de laborator precedent, cu
observaiile c cele trei liste derulabile se vor activa concomitent, trecerea la urmtorul cmp
realizndu-se numai n momentul n care a fost selectat anul naterii.
Programul care realizeaz acest formular este asemntor cu cel de la lucrarea de laborator
precedent, n continuare fiind prezentate numai funciile care prezint modificri i funciile aprute
n urma modificrii menionate mai sus:
.....................
public formaformular() {
initComponents();
jTextField2.setEnabled(false);
jTextField3.setEnabled(false);
jTextField3.setEnabled(false);
jTextField4.setEnabled(false);
jTextField6.setEnabled(false);
jTextField7.setEnabled(false);
jTextArea1.setVisible(false);
jRadioButton1.setEnabled(false);
jRadioButton2.setEnabled(false);
jCheckBox1.setEnabled(false);
jCheckBox2.setEnabled(false);
jButton1.setEnabled(false);
jButton3.setEnabled(false);
9
jComboBox1.setEnabled(false);
jComboBox2.setEnabled(false);
jComboBox3.setEnabled(false);
}
.............................................
private void inregnoua(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextField1.setEnabled(true);
jTextField1.setText("");
jTextField2.setEnabled(false);
jTextField2.setText("");
jTextField3.setEnabled(false);
jTextField3.setText("");
jTextField4.setEnabled(false);
jTextField4.setText("");
jTextField6.setEnabled(false);
jTextField6.setText("");
jTextField7.setEnabled(false);
jTextField7.setText("");
jTextArea1.setVisible(false);
jRadioButton1.setEnabled(false);
jRadioButton1.setSelected(false);
jRadioButton2.setEnabled(false);
jRadioButton2.setSelected(false);
jCheckBox1.setEnabled(false);
jCheckBox1.setSelected(false);
jCheckBox2.setEnabled(false);
jCheckBox2.setSelected(false);
jComboBox1.setEnabled(false);
jComboBox2.setEnabled(false);
jComboBox3.setEnabled(false);
jComboBox1.setSelectedIndex(0);
jComboBox2.setSelectedIndex(0);
jComboBox3.setSelectedIndex(0);
jButton1.setEnabled(false);
jButton3.setEnabled(false);
}
private void sel1(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextField6.setEnabled(true);
}
private void cancel(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextField1.setEnabled(true);
jTextField1.setText("");
jTextField2.setEnabled(false);
jTextField2.setText("");
jTextField3.setEnabled(false);
jTextField3.setText("");
jTextField4.setEnabled(false);
jTextField4.setText("");
jTextField6.setEnabled(false);
jTextField6.setText("");
jTextField7.setEnabled(false);
jTextField7.setText("");
jTextArea1.setVisible(false);
jRadioButton1.setEnabled(false);
jRadioButton1.setSelected(false);
jRadioButton2.setEnabled(false);
jRadioButton2.setSelected(false);
jCheckBox1.setEnabled(false);
jCheckBox1.setSelected(false);
10
jCheckBox2.setEnabled(false);
jCheckBox2.setSelected(false);
jComboBox1.setEnabled(false);
jComboBox2.setEnabled(false);
jComboBox3.setEnabled(false);
jComboBox1.setSelectedIndex(1);
jComboBox2.setSelectedIndex(1);
jComboBox3.setSelectedIndex(1);
jButton1.setEnabled(false);
jButton3.setEnabled(false);
}
private void next(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextField1.setEnabled(false);
jTextField2.setEnabled(false);
jTextField3.setEnabled(false);
jTextField4.setEnabled(false);
jTextField6.setEnabled(false);
jTextField7.setEnabled(false);
jTextArea1.setVisible(true);
jRadioButton1.setEnabled(false);
jRadioButton2.setEnabled(false);
jCheckBox1.setEnabled(false);
jCheckBox2.setEnabled(false);
jButton1.setEnabled(false);
jComboBox1.setEnabled(false);
jComboBox2.setEnabled(false);
jComboBox3.setEnabled(false);
jTextArea1.setText(jTextArea1.getText() + "Nume: " + jTextField1.getText() + "\nPrenume: " +
jTextField2.getText() +
"\nAdresa: " +jTextField3.getText() +"\n\t" +jTextField4.getText() +"\nData nasterii: " +
jComboBox1.getSelectedItem() + " " + jComboBox2.getSelectedItem() + " " +
jComboBox3.getSelectedItem() +
"\nLocaliatea: " +jTextField6.getText() +"\nJ udetul: " +jTextField7.getText() +
"\nSex: " +sex +"\n Inregistrarea a fost efectuata cu succes!\n\n");
jButton3.setEnabled(true);
}
private void click8(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jCheckBox2.setEnabled(false);
jButton1.setEnabled(true);
}
private void click7(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
sex="feminin";
jRadioButton1.setEnabled(false);
jCheckBox1.setEnabled(true);
jCheckBox2.setEnabled(true);
}
private void click6(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
sex="masculin";
jRadioButton2.setEnabled(false);
jCheckBox1.setEnabled(true);
jCheckBox2.setEnabled(true);
}
private void click5(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(jTextField6.getText()!=""){
jTextField7.setEnabled(true);
}
}
11
n continuare vor fi prezentate ferestrele aplicaiei la iniializare i dup apsarea butonului
Next>:
Figura 5.7. Fereastra aplicaiei la iniializare
Figura 5.8. Fereastra aplicaiei dup apsarea butonului Next>
Dac n figura 5.8. se apas butonul nregistrare nou, se va reveni la fereastra din figura 5.7.
n continuare, se dorete construirea unei aplicaii care are ca scop incrementarea unui contor,
folosind ca valoare iniial valoarea stabilit cu ajutorul unui obiect de tip bar de tip scal, afiarea
realizndu-se cu ajutorul unui obiect de tip bar de afiare. Incrementarea, respectiv decrementarea,
contorului se va realiza prin intermediul a dou butoane, Inc i Dec. Bara de tip scal va fi
disponibil permanent, valoarea afiat pe ea urmrind valoarea curent a contorului. Contorul nu va
putea lua dect valori n intervalul 0 100. Valoarea contorului iniial este dat de valoarea iniial
a barei de tip scal, adic 0. La modificarea acestei valori, prin mutarea cursorului la o alt valoare,
vor deveni accesibile butoanele de incrementare i decrementare, iar valoarea care va fi preluat din
bara de tip scal va fi afiat pe bara de afiare. La apsarea unuia dintre butoane se va incrementa
sau decrementa contorul, valoarea respectiv fiind afiat att pe bara de afiare, ct i pe bara de tip
scal. Valoarea contorului se poate modifica pe parcursul execuiei n funcie de modificarea
cursorului pe bara de tip scal.
12
Programul care realizeaz aceast aplicaie este prezentat n cele ce urmeaz:
package forma;
/*
* forma.java
*
* Created on 29 octombrie 2006, 16:16
*/
/**
*
* @author Administrator
*/
public class forma extends javax.swing.JFrame {
/** Creates new form forma */
public forma() {
initComponents();
jProgressBar1.setValue(0);
jProgressBar1.setEnabled(false);
jSlider1.setValue(0);
jButton1.setEnabled(false);
jButton2.setEnabled(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
...........................................
}// </editor-fold>
private void Dec(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jProgressBar1.setValue(jProgressBar1.getValue() - 1);
jProgressBar1.setString(java.lang.String.valueOf(jProgressBar1.getValue()));
jSlider1.setValue(jProgressBar1.getValue());
jButton1.setEnabled(true);
if(jProgressBar1.getValue()==0)
jButton2.setEnabled(false);
}
private void Inc(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jProgressBar1.setValue(jProgressBar1.getValue() +1);
jProgressBar1.setString(java.lang.String.valueOf(jProgressBar1.getValue()));
jSlider1.setValue(jProgressBar1.getValue());
jButton2.setEnabled(true);
if(jProgressBar1.getValue()==100)
jButton1.setEnabled(false);
}
private void slider(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jProgressBar1.setValue(jSlider1.getValue());
jProgressBar1.setString(java.lang.String.valueOf(jSlider1.getValue()));
jButton1.setEnabled(true);
jButton2.setEnabled(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
13
new forma().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.J Button jButton1;
private javax.swing.J Button jButton2;
private javax.swing.JProgressBar jProgressBar1;
private javax.swing.J Slider jSlider1;
// End of variables declaration
}
n continuare se prezint ferestrele aplicaiei n timpul rulrii:
Figura 5.9. Fereastra aplicaiei la iniializare
Figura 5.10. Fereastra aplicaiei dup modificarea poziiei cursorului barei de tip scal
14
Figura 5.11. Fereastra aplicaiei n timpul acionrii butoanelor

S-ar putea să vă placă și

  • Instrumente CASE
    Instrumente CASE
    Document78 pagini
    Instrumente CASE
    AleXtazy
    Încă nu există evaluări
  • Java
    Java
    Document14 pagini
    Java
    AleXtazy
    Încă nu există evaluări
  • Java
    Java
    Document14 pagini
    Java
    AleXtazy
    Încă nu există evaluări
  • Curs Baze de Date
    Curs Baze de Date
    Document17 pagini
    Curs Baze de Date
    AleXtazy
    Încă nu există evaluări
  • MK 2 PP
    MK 2 PP
    Document20 pagini
    MK 2 PP
    Victor Ivanitchi
    Încă nu există evaluări
  • POO Cursul 01
    POO Cursul 01
    Document32 pagini
    POO Cursul 01
    AleXtazy
    Încă nu există evaluări
  • 2b. Psihologia Umanista LB Romana
    2b. Psihologia Umanista LB Romana
    Document15 pagini
    2b. Psihologia Umanista LB Romana
    Catalin Campian
    Încă nu există evaluări
  • Curs 11
    Curs 11
    Document23 pagini
    Curs 11
    Viviana Vasile
    Încă nu există evaluări
  • Manual POO Si Vizuala
    Manual POO Si Vizuala
    Document232 pagini
    Manual POO Si Vizuala
    informaticasitero
    100% (5)
  • POO Cursul 01
    POO Cursul 01
    Document32 pagini
    POO Cursul 01
    AleXtazy
    Încă nu există evaluări