Đề cương bài giảng Java cơ sở
Java thích hợp đểphát triển ứng dụng nhiều lớp. Applet là chương trình đồ
họa chạy trên trình duyệt tại máy trạm. Ởcác ứng dụng Web, máy trạm gửi yêu
cầu tới máy chủ. Máy chủxửlý và gửi kết quảtrởlại máy trạm. Các Java API
chạy trên máy chủchịu trách nhiệm xửlý tại máy chủvà trảlời các yêu cầu của
máy trạm. Các Java API chạy trên máy chủnày mởrộng khảnăng của các ứng
dụng Java API chuẩn. Các ứng dụng trên máy chủnày được gọi là các
JSP/Servlet. hoặc Applet tại máy chủ. Xửlý Form của HTML là cách sửdụng đơn
giản nhất của JSP/Servlet. Chúng còn có thể được dùng đểxửlý dữliệu, thực thi
các giao dịch và thường được thực thi thông qua máy chủWeb.
n giao diện khác vào Frame: Ví dụ: myWindow.getContentPane().add(new JButton(“OK”));// Đưa vào một nút (JButton) có tên “OK” vào frame 3. Đặt lại kích thước cho frame sử dụng hàm setSize(): myWindow.setSize(200, 300);// Đặt lại khung frame là 200 ( 300 4. Gói khung frame đó lại bằng hàm pack(): myWindow.pack(); 5. Cho hiện frame: myWindow.setVisible(true); II. Trình quản lý hiển thị trong Java Khi thiết kế giao diện đồ họa cho một ứng dụng, chúng ta phải quan tâm đến kích thước và cách bố trí (layout) các thành phần giao diện như: JButton, JCheckbox, JTextField, v.v. sao cho tiện lợi nhất đối với người sử dụng. Java có các lớp đảm nhiệm những công việc trên và quản lý các thành phần giao diện GUI bên trong các vật chứa. Bảng sau cung cấp bốn lớp quản lý layout (cách bố trí và sắp xếp) các thành phần GUI. Tên lớp Mô tả FlowLayout Xếp các thành phần giao diện trước tiên theo hàng từ trái qua phải, sau đó theo cột từ trên xuống dưới. Cách sắp xếp này là mặc định đối với Panel, JPanel ,Applet và JApplet. GridLayout Các thành phần giao diện được sắp xếp trong các ô lưới hình chữ nhật lần lượt theo hàng từ trái qua phải và theo cột từ trên xuống dưới trong một phần tử chứa. Mỗi thành phần giao diện chứa trong một ô. BorderLayout Các thành phần giao diện (ít hơn 5) được đặt vào các vị trí theo các hướng: north (bắc), south (nam), west (tây), east (đông) và center (trung tâm)). Cách sắp xếp này là mặc định đối với lớp Window, Frame, Jframe, Dialog và JDialog. GridBagLayout Cho phép đặt các thành phần giao diện vào lưới hình chữ nhật, nhưng một thành phần có thể chiếm nhiều nhiều hơn một ô. null Các thành phần bên trong vật chứa không được sẵp lại khi kích thước của vật chứa thay đổi. Các phương pháp thiết đặt layout Để lấy về layout hay để đặt lại layout cho vật chứa, chúng ta có thể sử dụng hai phương thức của lớp Container: LayoutManager getLayout(); void setLayout(LayoutManager mgr); Các thành phần giao diện sau khi đã được tạo ra thì phải được đưa vào một phần tử chứa nào đó. Hàm add() của lớp Container được nạp chồng để thực hiện nhiệm vụ đưa các thành phần vào phần tử chứa. Component add(Component comp) Component add(Component comp, int index) Cmponent add(Component comp, Object constraints) Cmponent add(Component comp, Object constraints, int index) Trong đó, đối số index được sử dụng để chỉ ra vị trí của ô cần đặt thành phần giao diện comp vào. Đối số constraints xác định các hướng để đưa comp vào phần tử chứa. Ngược lại, khi cần loại ra khỏi phần tử chứa một thành phần giao diện thì sử dụng các hàm sau: void remove(int index) void remove(Component comp) void removeAll() 1. Lớp FlowLayout Lớp FlowLayout cung cấp các hàm tạo lập để sắp hàng các thành phần giao diện: FlowLayout() FlowLayout(int aligment) FlowLayout(int aligment, int horizongap, int verticalgap) public static final int LEFT public static final int CENTER public static final int RIGHT Đối số aligment xác định cách sắp theo hàng: từ trái, phải hay trung tâm, horizongap và verticalgap là khoảng cách tính theo pixel giữa các hàng các cột. Trường hợp mặc định thì khoảng cách giữa các hàng, cột là 5 pixel. 2. Lớp GridLayout Lớp GridLayout cung cấp các hàm tạo lập để sắp hàng các thành phần giao diện: GridLayout() GridLayout(int rows, int columns) GridLayout(int rows, int columns, int hoiongap, int verticalgap) Tạo ra một lưới hình chữ nhật có rows ( columns ô có khoảng cách giữa các hàng các cột là horizongap, verticalgap. Một trong hai đối số rows hoặc columns có thể là 0, nhưng không thể cả hai, GridLayout(1,0) là tạo ra lưới có một hàng. 3.Lớp BorderLayout Lớp BorderLayout cho phép đặt một thành phần giao diện vào một trong bốn hướng: bắc (NORTH), nam (SOUTH), đông (EAST), tây (WEST) và ở giữa (CENTER). BorderLayout() BorderLayout(int horizongap, int verticalgap) Tạo ra một layout mặc định hoặc có khoảng cách giữa các thành phần (tính bằng pixel) là horizongap theo hàng và verticalgap theo cột. Component add(Component comp) void add(Component comp, Object constraint) public static final String NORTH public static final String SOUTH public static final String EAST public static final String WEST public static final String CENTER Trường hợp mặc định là CENTER, ngược lại, có thể chỉ định hướng để đặt các thành phần comp vào phần tử chứa theo constraint là một trong các hằng trên. III. Xử lý sự kiện trong Java Các ứng dụng với GUI thường được hướng dẫn bởi các sự kiện (event). Việc nhấn một nút, mở, đóng các Window hay gõ các ký tự từ bàn phím, v.v. đều tạo ra các sự kiện (event) và được gửi tới cho chương trình ứng dụng. Trong Java các sự kiện được thể hiện bằng các đối tượng. Lớp cơ sở nhất, lớp cha của tất cả các lớp con của các sự kiện là lớp java.util.EventObject. Hình H7-20 Các lớp xử lý các sự kiện Các lớp con của AWTEvent được chia thành hai nhóm: 1. Các lớp mô tả về ngữ nghĩa của các sự kiện, 2. Các lớp sự kiện ở mức thấp. 1. Ý nghĩa của các lớp a. ActionEvent Sự kiện này được phát sinh bởi những hoạt thực hiện trên các thành phần của GUI. Các thành phần gây ra các sự kiện hành động bao gồm: 1 JButton - khi một nút button được khích hoạt, 2 JList - khi một mục trong danh sách được kích hoạt đúp, 3 JmenuItem, JcheckBoxMenu, JradioMenu - khi một mục trong thực đơn được chọn, 4 JTextField - khi gõ phím ENTER trong trường văn bản (text). b. AdjustmentEvent Sự kiện này xẩy ra khi ta điều chỉnh (adjustment) giá trị thanh cuốn (JScollBar) 1 Scrollbar - khi thực hiện một lần căn chỉnh trong thanh trượt Scrollbar. Lớp này có phương thức int getValue(): cho lại giá trị hiện thời được xác định bởi lần căn chỉnh sau cùng. c. ItemEvent Các thành phần của GUI gây ra các sự kiện về các mục gồm có: 1 JCheckbox - khi trạng thái của hộp kiểm tra Checkbox thay đổi. 2 CheckboxMenuItem - khi trạng thái của hộp kiểm tra Checkbox ứng với mục của thực đơn thay đổi. 3 JRadioButton- khi trạng thái của hộp chọn (Option) thay đổi. 4 JList - khi một mục trong danh sách được chọn hoặc bị loại bỏ chọn. 5 JCompoBox - khi một mục trong danh sách được chọn hoặc bị loại bỏ chọn. Lớp ItemEvent có phương thức Object getItem(): Cho lại đối tượng được chọn hay vừa bị bỏ chọn. d. TextEvent Các thành phần của GUI gây ra các sự kiện về text gồm có: 1 TextArea - khi kết thúc bằng nhấn nút ENTER, 2 TextField - khi kết thúc bằng nhấn nút ENTER. e. ComponentEvent Sự kiện này xuất hiện khi một thành phần bị ẩn đi/hiển ra hoặc thay thay đổi lại kích thước. Lớp ComponentEvent có phương thức: Component getComponent() Cho lại đối tượng tham chiếu kiểu Component. f. ContainerEvent Sự kiện này xuất hiện khi một thành phần được bổ sung hay bị loại bỏ khỏi vật chứa (Container). g. FocusEvent Sự kiện loại này xuất hiện khi một thành phần nhận hoặc mất focus. h. KeyEvent Lớp KeyEvent là lớp con của lớp trừu tượng InputEvent được sử dụng để xử lý các sự kiện liên quan đến các phím của bàn phím. Lớp này có các phương thức: int getKeyCode() - Đối với các sự kiện KEY_PRESSED hoặc KEY_RELEASED, hàm này được sử dụng để nhận lại giá trị nguyên tương ứng với mã của phím trên bàn phím. char getKeyChar() - Đối với các sự kiện KEY_PRESSED, hàm này được sử dụng để nhận lại giá trị nguyên, mã Unicode tương ứng với ký tự của bàn phím. i. MouseEvent Lớp MouseEvent là lớp con của lớp trừu tượng InputEvent được sử dụng để xử lý các tín hiệu của chuột. Lớp này có các phương thức: int getX() int getY() Point getPoint() Các hàm này được sử dụng để nhận lại tọa độ x, y của vị trí liên quan đến sự kiện do chuột gây ra. void translatePoint(int dx, int dy) Hàm translate() được sử dụng để chuyển tọa độ của sự kiện do chuột gây ra đến (dx, dy). int getClickCount() Hàm getClickCount() đếm số lần kích chuột. j. PaintEvent Sự kiện này xuất hiện khi một thành phần được vẽ lại, thực tế sự kiện này xẩy ra khi phương thức paint()/ update() được gọi đến. k. WindowEvent Sự kiện loại này xuất hiện khi thao tác với các Window, chẳng hạn như: đóng, phóng to, thu nhỏ.. một cửa sổ. Lớp này có phương thức: Window getWindow() Hàm này cho lại đối tượng của lớp Window ứng với sự kiện liên quan đến Window đã xảy ra. Kiểu sự kiện Nguồn gây ra sự kiện Phương thức đang ký, gõ bỏ đối tượng lắng nghe Giao diện Listener lắng nghe tương ứng AcitionEvent JButton JList TexField addComponentlistener removeActiontListener AcitionListener AdjustmentEvent JScrollbar addAdjustmentListener removeAdjustmentListener AdjustmentListe ner ItemEvent JCheckbox addItemListener ItemListener JCheckboxMenuItem JRadioButton JList JCompoBox removeItemListener TextEvent JTextArea JTexField JTextPane JEditorPane addTexListener removeTextListener TextListener ComponentEvent Component addComponentListener removeComponentListener ComponentListe ner ContainerEvent Container addContainerListener removeContainerListener ContainerListen er FocusEvent Component addFocusListener removeFocusListener FocusListener KeyEvent Component addkeyListener removeKeyListener KeyListener MouseEvent Component addMouseListener remoMouseListener addMouseMotionListener remoMouseMotionListener MouseMotionLi stener WindowEvent Window addWindowListener removeWindowListener WindowListener 3. Một số lớp điều hợp Giao diện Listener lắng nghe Lớp điều hợp tương ứng AcitionListener Không có lớp điều hợp tương ứng AdjustmentListener AdjustmentAdapter ItemListener Không có lớp điều hợp tương ứng TextListener Không có lớp điều hợp tương ứng ComponentListener ComponentAdapter ContainerListener ContainerAdapter FocusListener FocusAdapter KeyListener KeyAdapter MouseMotionListener MouseMotionAdapter WindowListener WindowAdapter
File đính kèm:
- Đề cương bài giảng Java cơ sở.pdf