Thành phần cơ bản trong Swing
Thành phần cơ bản trong Swing
Các thành phần cơ bản trong Swing sẽ được trình bày và sử dụng các thành phần mà chúng tôi đã giới thiệu trước đó trong bài Giới thiệu về Swing (Bài 1).
Các thành phần thành phần đó là JSlider, JProgressBar, JFormattedTextField, JOptionPane,…cũng được sử dụng nhiều trong quá trình thiết kế ứng dụng hỗ trợ giao diện đồ hoạ. Để tìm hiểu rõ hơn về các thành phần này, hãy cùng theo dõi bài viết dưới đây của R2S!
JSlider – Thành phần cơ bản trong Swing
JSlider là gì?
JSlider là một thành phần giao diện người dùng trong Java Swing được sử dụng để chọn giá trị từ một khoảng giá trị đã cho. Nó cho phép người dùng kéo thanh trượt để điều chỉnh giá trị từ tối thiểu đến tối đa. JSlider thường được sử dụng để điều chỉnh các thuộc tính như âm lượng, độ sáng, kích thước, v.v. của một ứng dụng.
Một số phương thức thường dùng của JSlider
Tên | Miêu tả |
int value = getValue(); | Lấy giá trị hiện tại |
setValue(int value); | Thiết lập giá trị hiện tại |
Đăng ký sự kiện cho JSlider
JProgressBar trong thành phần cơ bản trong Swing
JProgressBar là gì?
JProgressBar là một thành phần giao diện trong Java Swing được sử dụng để hiển thị tiến trình của một tác vụ đang diễn ra.
Nó thường được sử dụng để chỉ ra cho người dùng biết mức độ hoàn thành của một tác vụ và tỷ lệ phần trăm đã được tiến hành. ProgressBar thường được cập nhật theo thời gian để hiển thị trạng thái tiến trình của tác vụ.
JProgressBar được sử dụng để hiển thị tiến trình xử lý bằng cách hiển thị tỷ lệ phần trăm hoàn thành của nó. Thông thường thì thanh tiến trình được sử dụng trong màn hình splash để hiển thị trạng thái nạp dữ liệu của ứng dụng hoặc là trong những xử lý đòi hỏi nhiều thời gian.
Tạo JProgressBar trong NetBeans
Tên | Miêu tả |
setMinimum(int n) | Thiết lập giá trị nhỏ nhất |
setMaximum(int n) | Thiết lập giá trị lớn nhất |
setValue(int n) | Thiết lập giá trị hiện hành |
int value = getValue(); | Lấy giá trị hiện hành |
setStringPainted(boolean b) | Thiết lập hiển thị số phần trăm hoàn thành |
Đăng ký sự kiện cho JProgressBar
JFormattedTextField trong thành phần cơ bản trong Swing
JFormattedTextField là gì?
JFormattedTextField là một lớp trong Java Swing được sử dụng để hiển thị và chỉnh sửa giá trị của một đối tượng trong một định dạng cụ thể.
Nó cung cấp một cách tiện lợi để định dạng và nhập liệu cho một loại dữ liệu nhất định như số nguyên, số thực, ngày tháng, v.v. JFormattedTextField cung cấp các định dạng mặc định cho các loại dữ liệu thông thường, và cho phép bạn tùy chỉnh định dạng theo ý muốn.
Giống như JTextField ngoại trừ chỉ chấp nhận những ký tự theo định dạng đã thiết lập trước. Có nhiều định dạng khác nhau ví dụ như số (numeric), ngày (date) và tiền tệ (currency)
JFormattedTextField được sử dụng để xác thực dữ liệu mà người dùng nhập vào mà không cần phải viết mã code để xử lý.
Tạo JFormattedTextField trong NetBeans
Tuỳ chỉnh định dạng (Customized Formatter)
Bảng mask characters
Mask character | Miêu tả |
# | Một số bất kỳ |
U | Bất kỳ ký tự nào. Tất cả các ký tự đếu được chuyển thành chữ hoa. |
L | Bất kỳ ký tự nào. Tất cả các ký tự đều được chuyển thành chữ thường. |
A | Một ký tự hoặc một số bất kỳ |
? | Bất kỳ ký tự nào |
* | Mọi thứ. |
Ví dụ chỉ cho phép người dùng nhập một số có 4 chữ số
Hình ảnh bên dưới là kết quả khi chạy ứng dụng
JOptionPane trong thành phần cơ bản trong Swing
JOptionPane là gì?
JOptionPane là một lớp trong thư viện javax.swing trong Java được sử dụng để tạo các hộp thoại đơn giản trong ứng dụng desktop.
Nó cung cấp các phương thức để hiển thị các hộp thoại thông báo, hộp thoại xác nhận và hộp thoại nhập dữ liệu. JOptionPane cho phép người dùng tương tác với ứng dụng và cung cấp thông tin hoặc lấy dữ liệu từ người dùng một cách dễ dàng.
JOptionPane được sử dụng để hiển thị hộp thoại đến người dùng. Tùy theo mục đích sử dụng mà hộp thoại đó có thể là một trong các loại sau đây
Các loại JOptionPane được sử dụng
Tên | Miêu tả |
MessageDialog | Hiển thị hộp thoại có dạng thông báo |
ConfirmDialog | Hiển thị hộp thoại theo yêu cầu người dùng xác nhận (Yes/No) |
InputDialog | Hiển thị hộp thoại cho phép người dùng tự nhập thông tin |
OptionDiglog | Cho phép lập trình viên chỉnh sửa hộp thoại theo ý muốn của mình. |
Ví dụ sử dụng JOptionPane
Xử lý sự kiện cho nút “Message Dialog” trong xử lý mẫu
<JOptionPane.showMessageDialog(this, "Please input your name");>
Xử lý sự kiện cho nút “Input Dialog” trong xử lý mẫu
<String yourName = JOptionPane.showInputDialog("Your name is");
if(yourName != null) {
JOptionPane.showMessageDialog(this, "Your name is "+yourName);
}>
Xử lý sự kiện cho nút “Confirm Dialog” trong xử lý mẫu
<int ret = JOptionPane.showConfirmDialog(this, "Are you sure?"
, "Confirm", JOptionPane.YES_NO_OPTION
, JOptionPane.QUESTION_MESSAGE);
if (ret == JOptionPane.YES_OPTION) {
//Xử lý trường hợp người dùng chọn Yes
} else {
//Xử lý trường hợp người dùng chọn No
}>
Xử lý sự kiện cho nút “Option Dialog” trong xử lý mẫu
<int ret = JOptionPane.showOptionDialog(this,
"Do you want to print this document?", "Confirm"
,JOptionPane.YES_NO_OPTION
,JOptionPane.QUESTION_MESSAGE, null
,new String[] {"Đồng ý","Thoát"}, "Đồng ý");
if (ret == JOptionPane.YES_OPTION) {
//Xử lý trong trường hợp người dùng chọn "Đồng ý"
} else {
//Xử lý trong trường hợp người dùng chọn "Thoát"
}>
Bài tập thực hành của bài thành phần cơ bản trong swing
Yêu cầu: Thiết kế giao diện và xử lý sự kiện cho các JSlider (JSlider cho Year, JSlider cho Month và JSlider cho Day)
Gợi ý:
Sử dụng chức năng Pre-Init Code và bổ sung đoạn mã code sau để xử lý hiển thị tháng dạng chuỗi (Jan, Feb, Mar, …..), trong đó sldMonth là tên gọi của JSlider cho Month
<String[] months = (new DateFormatSymbols()).getShortMonths();
Hashtable hashTable = new Hashtable(12);
for (int i = 0; i < 12; i++) {
hashTable.put(new Integer(i+1), new JLabel(months[i],JLabel.CENTER));
}
sldMonth.setLabelTable(hashTable);>
Kết luận bài viết thành phần cơ bản trong Swing
Như vậy, qua bài viết về Thành phần cơ bản trong Swing trên đây, R2S chúng tôi đã giúp bạn hiểu được về JSlider, JProgressBar, JFormattedTextField, JOptionPane
Đừng quên bỏ lỡ bất cứ bài viết nào của chúng tôi để học thêm nhiều kiến thức hữu ích về lập trình giao diện trong lập trình java nhé.
Hãy đến website của R2S để tìm hiểu sâu hơn vào lập trình và công nghệ thông tin để có nhiều kiến thức hay về nó hơn nha.
Bài viết gốc được đăng tải tại giasutinhoc.vn