Documente Academic
Documente Profesional
Documente Cultură
Lab 8
Lab 8
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
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.
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.
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).
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);
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);
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() + "\nJudetul: " + 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);
}
}
10
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.
11
12
new forma().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JProgressBar jProgressBar1;
private javax.swing.JSlider jSlider1;
// End of variables declaration
}
Figura 5.10. Fereastra aplicaiei dup modificarea poziiei cursorului barei de tip scal
13
14