[JavaSwing] HelloWorld
Trong bài viết này chúng ta sẽ tìm hiểu một số thao tác cơ bản để tạo ra một Jframe – nôm na đó là khung của ứng dụng.
Ví dụ 1: Tạo 1 frame 250×200 với tiêu đề “HelloWorld” hiển thị ở tọa độ (300, 200) trên màn hình.
package nguyenvanquan7826.helloworld; import javax.swing.JFrame; public class HelloWorld { public static void main(String[] args) { // create frame with title "HelloWorld" JFrame frame = new JFrame("HelloWorld"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // set Size and location frame frame.setSize(250, 200); frame.setLocation(300, 200); // display frame frame.setVisible(true); } }
Chúng ta có 4 hàm khởi tạo 1 JFrame:
JFrame() : Khởi tạo một frame mới invisible
JFrame(GraphicsConfiguration qc) : Tạo một Frame được chỉ định GraphicsConfiguration của màn hình thiết bị và tiêu đề trắng
JFrame(String title) : Tạo một frame mới invisibile với tiêu đề được chỉ định
JFrame(String title, GraphicsConfiguration qc) : Tạo một Frame được chỉ định tiêu đề và GraphicsConfiguration của màn hình thiết bị.
Trong ví dụ trên chúng ta sử dụng phuơng thức khởi tạo thứ 3 để đặt tiêu đề cho frame.
Hàm setDefaultCloseOperation(int operation): Đặt hành động mặc định sẽ xảy ra khi người dùng đóng JFrame. Nếu không dùng hàm này để đặt thì mặc định là HIDE_ON_CLOSE (1) – Khi đóng frame sẽ bị ẩn đi chứ hoàn toàn không đóng lại.
Các lựa chọn khác gồm:
DO_NOTHING_ON_CLOSE (0) – không làm gì cả
DISPOSE_ON_CLOSE (2) – Chỉ đóng frame đó, các frame khác liên quan sẽ không bị đóng.
EXIT_ON_CLOSE (3) – Đóng toàn bộ các frame liên quan tới nó.
Hàm setSize đặt kích thước cho frame.
Hàm setLocation đặt vị trí xuất hiện của frame trên màn hình. Nếu muốn frame xuất hiện chính giữa màn hình ta dùng hàm setLocationRelativeTo(null)
Hàm setVisible đặt chế độ hiển thị cho frame. Nếu không gọi hoặc đặt giá trị false cho hàm này thì frame sẽ không được hiển thị.
Ví dụ 2: Tạo 1 JFrame bằng cách kế thừa class JFrame.
package nguyenvanquan7826.helloworld; import javax.swing.JFrame; import javax.swing.JLabel; public class HelloWorld1 extends JFrame { public HelloWorld1() { // create frame with title "HelloWorld" setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("HelloWorld1"); // set location setLocationRelativeTo(null); // add a JLabel add(new JLabel("HelloWorld")); // display frame pack(); setVisible(true); } public static void main(String[] args) { new HelloWorld1(); } }
Trong ví dụ 2 này class của chúng ta kế thừa lớp JFrame nên nó chính là 1 JFrame, vì vậy trong phương thức khởi tạo HelloWorld1 chúng ta có thể gọi ngay các phương thức của JFrame.
Ngoài ra trong ví dụ này còn dùng 2 phương thức add() và pack(). Phương thức add giúp chúng ta thêm một đối tượng vào frame (ở đây là 1 JLabel), phương thức pack giúp frame có kích thước vừa đủ với nội dung của frame ngay cả khi chúng ta đặt kích thước frame lớn hơn.
Phương thức setResizable(boolean resizable) dùng để đặt frame có thể được thay đổi kích thước hay không.
Tham khảo thêm: class JFrame
a có tài liệu lý thuyết về java swing k cho e xin. e tự học nên hơi chậm 1 tí. nếu có thì a cho e xin nha.
Alo anh ko. Toàn google 🙂
E mới học. Bài viết thực sự dễ hiểu với e. Cảm ơn a!
bt đầu của bạn mình chạy trên IDE netbean nó có lỗi bạn ơi
mình có code này bạn giúp mình với mình k nghĩ ra lỗi
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Inpout;
import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Inpout {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String ten;
int tuoi;
Scanner inp = new Scanner(System.in);
System.out.print(“nhap ten cua ban: “);
ten=inp.nextLine();
System.out.print(“nhap tuoi cua ban: “);
tuoi=inp.nextLine();
System.out.println(“ten toi la: %s, toi %d tuoi”,ten,tuoi);
inp.close();
}
} // TODO code application logic here
Lỗi thì bạn nhìn xem báo lỗi gì mới sửa được chứ bạn. Chú ý tên package xem chuẩn không nhé.
tuoi=inp.nextInt();
khó quá . hic ihc
mấy cái setSize, setLocation,… phải gọi là phương thức chứ nhỉ ? sao lại gọi là hàm ?
Đúng rồi, phướng thức đó bạn.
tui nghĩ phương thức vs hàm là 1 á bạn