Hướng dẫn dùng text area java swing
Text field là một điều khiển văn bản cơ bản cho phép người dùng có thể điền một lượng văn bản nhỏ như họ tên, email, điện thoại. Khi người dùng điền xong dữ liệu và nhấn Enter chẳng hạn thì text field sẽ kích hoạt một action event. Nếu bạn cần điền dữ liệu nhiều hơn và hiển thị trên nhiều dòng thì ta dùng text area. Swing cung cấp một số lớp cho phép ta tương tác với các loại text field khác nhau như sau: Ví dụ sau đây hiển thị text field và text area cơ bản. Text field cho phép người dùng nhập văn bản, còn text area thì không. Khi người dùng nhấn nút Enter trong text field thì chương trình sẽ copy nội dung của nó vào text area, sau đó sẽ thiết lập hiệu ứng bôi đen cho tất cả văn bản trong text field. Toàn bộ đoạn mã của chương trình thể hiện hình ảnh ở trên được thể hiện trong ví dụ textField = new JTextField(20); Đối số kiểu nguyên được truyền tới hàm tạo Lưu ý: Ta nên chỉ định số cột cho text field, nếu không kích thước của text field sẽ thay đổi mỗi khi văn bản điền vào nó thay đổi. Câu lệnh dưới đây dùng để đăng ký đối tượng textField.addActionListener(this); Phương thức private final static String newline = "\n"; ... public void actionPerformed(ActionEvent evt) { String text = textField.getText(); textArea.append(text + newline); textField.selectAll(); } Cần lưu ý khi sử dụng phương thức getText của Vì lớp Ví dụ TextFieldDemoVí dụ Để tô xám cho văn bản được tìm thấy thì ví dụ này sử dụng một highlighter và một painter. Đoạn mã dưới đây tạo và thiết lập highlighter và painter cho text area. final Highlighter hilit; final Highlighter.HighlightPainter painter; ... hilit = new DefaultHighlighter(); painter = new DefaultHighlighter.DefaultHighlightPainter(HILIT_COLOR); textArea.setHighlighter(hilit); Câu lệnh sau sẽ thêm document listener vào document của text field. entry.getDocument().addDocumentListener(this); Các phương thức insertUpdate và removeUpdate của document listener sẽ gọi phương thức search nhằm mục đích tìm kiếm trong text area đồng thời tiến hành xử lý việc tô xám. Đoạn mã sau đây dùng để tô xám phần văn bản được tìm thấy, thiết lập và đặt dấu nháy vào phía cuối của phần văn bản được tìm thấy, thiết lập nền mặc định cho text field, và hiển thị một thông điệp trong thanh trạng thái. hilit.addHighlight(index, end, painter); textArea.setCaretPosition(end); entry.setBackground(entryBg); message("'" + s + "' found. Press ESC to end search"); Thanh trạng thái là một đối tượng `JTextField`0. Đoạn mã sau thể hiện cách phương thức `JTextField`1 được thực thi. private JLabel status; ... void message(String msg) { status.setText(msg); } Nếu không có sự tương thích nào trong text area thì đoạn mã sau sẽ thay đổi màu nền của text field thành màu pink và hiển thị một thông báo phù hợp. entry.setBackground(ERROR_COLOR); message("'" + s + "' not found. Press ESC to start a new search"); Lớp `JTextField`2 dùng để phản ứng với phím Escape như sau: class CancelAction extends AbstractAction { public void actionPerformed(ActionEvent ev) { hilit.removeAllHighlights(); entry.setText(""); entry.setBackground(entryBg); } } API Text FieldThiết lập hoặc lấy nội dung của text field Phương thức/Hàm tạo Mục đích JTextField()
JTextField(String)
JTextField(String, int)
JTextField(int) Tạo một text field. Đối số |