Dialog oynalar
Dialog oynalar foydalanuvchi interfeysining standart elementi xisoblanib foydalanuvchiga
biron bir ma’lumot berish yoki foydalanuvchidan biron bir savol so’rash uchun ishlatiladi.
Dasturlarda dialog oynalar ko’p ishlatilganligi sababli Swing o’rami oldindan tayyorlangan
dialoglar to’plamini o’z ichiga oladi. Dialog oynalar
JOptionPane
klassining statik metodlari
yordamida yaratilishi mumkin. Ushbu klass dialog oynalarini to’rt guruhga ajratadi:
1. Ma’lumot berish dialog oynalar – foydalanuvchiga biron bir ma’lumot ko’rsatadi va
odatda OK tugmasiga ega;
2. Tasdiqlash dialog oynalar – foydalanuvchidan biron bir savol so’raydi va odatda Yes,
No, Cancel tugmalarga ega;
3. Ma’lumot kiritish dialog oynalar – foydalanuvchidan biron bir matn kiritishni so’raydi;
4. Maxsus dialog oynalar – istalgan elementni joylashtirish imkonini beradi.
Ma’lumot berish dialog oynasi
JOptionPane
klassining
showMessageDialog()
metodi
yordamida yaratiladi. Masalan, quyidagi dastur ma’lumot berish dialog oynasini chiqarib beradi.
import javax.swing.*;
public class DialogTest1
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
JOptionPane.showMessageDialog(frame, "Dastur ishga tushirildi");
}
}
JOptionPane
klassi yordamida yaratilgan ma’lumot berish dialog oynasi
Tasdiqlash dialog oynasi
JOptionPane
klassining
showConfirmDialog()
metodi yordamida
yaratiladi.
showConfirmDialog()
metodi foydalanuvchi bosgan tugmaga asosan butun son
qaytaradi. Quyidagi dastur tasdiqlash dialog oynasini chiqarib,
tugmaLabel
yozuvini bosilgan
tugma asosida o’zgartirib beradi.
import javax.swing.*;
public class DialogTest2
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Dialog Test 2");
JPanel panel = new JPanel();
JLabel label = new JLabel("Dialog oynasida bosilgan tugma: ");
JLabel tugmaLabel = new JLabel(" ");
panel.add(label);
panel.add(tugmaLabel);
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
int i = JOptionPane.showConfirmDialog(frame, "Fayl saqlansinmi?");
if(i==0) tugmaLabel.setText("Yes");
if(i==1) tugmaLabel.setText("No");
if(i==2) tugmaLabel.setText("Cancel");
}
}
Dastur chiqarib bergan tasdiqlash dialog oynasi quyida keltirilgan:
JOptionPane
klassi yordamida yaratilgan tasdiqlash dialog oynasi
Ma’lumot kiritish dialog oynasi
JOptionPane
klassining
showInputDialog()
metodi
yordamida yaratiladi.
showInputDialog()
metodi foydalanuvchi kiritgan matnini qaytaradi.
Quyidagi dastur ma’lumot kiritish dialog oynasini chiqarib,
matnLabel
yozuvini kiritilgan matn
asosida o’zgartirib beradi.
import javax.swing.*;
public class DialogTest3
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Dialog Test 3");
JPanel panel = new JPanel();
JLabel label = new JLabel("Kiritilgan matn: ");
JLabel matnLabel = new JLabel(" ");
panel.add(label);
panel.add(matnLabel);
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
String s = JOptionPane.showInputDialog(frame, "Fayl nomini kiriting");
matnLabel.setText(s);
}
}
Dastur quyidagi ma’lumot kiritish dialogini chiqarib beardi:
JOptionPane
klassi yordamida yaratilgan ma’lumot kiritish dialog oynasi
Maxsus dialog oynasi
JOptionPane
klassining
showOptionDialog()
metodi yordamida
yaratiladi. Ushbu dialog oynasiga istalgan elementlarni joylashtirib olish mumkin. Quyidagi
dastur avtorizatsia dialog oynasini yaratib beradi.
import javax.swing.*;
public class DialogTest4
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Dialog Test 4");
JPanel panel = new JPanel();
JLabel matnLabel = new JLabel(" ");
panel.add(matnLabel);
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
JTextField userField = new JTextField();
JPasswordField passField = new JPasswordField();
String message = "Foydalanuvchi nomi va parolini kiriting";
JOptionPane.showOptionDialog(frame, new Object[] {message, userField,
passField}, "Login", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);
String password = "";
for(char ch: passField.getPassword())
password = password + ch;
matnLabel.setText("Foydalanuvchi: " + userField.getText() + "; Parol: " +
password);
}
}
Dastur quyidagi dialog oynani chiqarib beradi:
JOptionPane
klassi yordamida yaratilgan va istalgan elementlarni
joylashtirish mumkin bo’lgan dialog oynasi
Dastur ishlashi davomida biron bir faylni ochish yoki saqlash extiyoji paydo bo’ladi. Ushbu
maqsadda Java dasturlash tili fayllar bilan ishlovchi dialog oynasini yaratib beruvchi
JFileChooser
klassini taklif etadi. Faylni ochish dialog oynasini chiqarish uchun
JFileChooser
klassining
showOpenDialog()
metodidan, faylni saqlash dialog oynasini chiqarish uchun
showSaveDialog
() metodidan foydalanish mumkin.
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(frame);
Fayl tanlash dialog oynasi ochilganda fayl tanlash uchun ma’lum papka ochilishi kerak
bo’lsa
JFileChooser
klassining
setCurrentDirectory()
metodidan foydalanish mumkin.
chooser.setCurrentDirectory(new File("G:\\book\\code\\"));
Foydalanuvchi tanlagan faylni olish uchun
getSelectedFile
() metodidan foydalanish
mumkin.
File file = chooser.getSelectedFile();
Quyida fayl tanlash dialog oynasi keltirilgan:
JFileChooser
klassi yordamida yaratilgan fayl tanlash dialog oynasi
Ushbu fayl tanlash dialog oynasi quyidafi dastur tomonidan yaratilgan:
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class FileTanlash
{
public static void main(String[] args)
{
JFrame frame = new JFrame("File Tanlash");
JPanel panel = new JPanel();
JLabel label = new JLabel("");
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("G:\\book\\code\\"));
panel.add(label);
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setVisible(true);
chooser.showOpenDialog(frame);
String s = chooser.getSelectedFile().getPath();
label.setText(s);
}
}
Bu yerda
Fayl
klassi diskda joylashgan faylni ifoda etadi. Fayl manzilini ko’rsatishda
papkalarni ajratuvchi “\” simvoli “\\” ko’rinishda yozilishi kerak.
Fayl
klassi
java.io
o’ramida
joylashgan bo’lib, ushbu o’ram dastur boshida import qilingan.
Swing o’rami rang tanlash tayyor dialog oynasini xam taklif etadi. Rang tanlash dialog
oynasini
JColorChooser
klassi yordamida yaratib olish mumkin.
JColorChooser
klassning
showDialog()
statik metodi dialog oynani chiqarib beradi.
Color c = JColorChooser.showDialog(frame, "Rang tanlash", null);
showDialog()
metodi tanlangan rangni qiymat sifatida qaytaradi. Metodning uchunchi
parametri joriy tanlangan rangni belgilaydi. Joriy belgilangan rang bo’lmasa
null
qiymati
berilishi mumkin.
Quyida rang tanlash dialog oynasi keltirilgan:
JColorChooser
klassi yordamida yaratilgan rang tanlash dialog oynasi
Ushbu oyna quyidagi dastur yordamida yaratilgan:
import java.awt.*;
import javax.swing.*;
public class RangTanlash
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Rang Tanlash");
JPanel panel = new JPanel();
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(300,200);
frame.setVisible(true);
Color c = JColorChooser.showDialog(frame, "Rang tanlash", null);
panel.setBackground(c);
}
}
Dostları ilə paylaş: |