Lớp JTextArea trong Java Swing được sử dụng để tạo một khu vực dành cho text. Nó là một khu vực gồm nhiều dòng và chỉ hiển thị thuần text. Dưới đây là cú pháp khai báo của lớp javax.swing.JTextArea:
public class JTextArea extends JTextComponent
Nội dung chính
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.text.JTextComponent
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Các constructor của lớp JTextArea trong Java Swing
JTextArea(): Tạo một TextArea mới.
JTextArea(String s): Tạo một TextArea mới với text đã cho.
JTextArea(int row, int column): Tạo một TextArea trống, mới với số hàng và cột đã cho.
JTextArea(String s, int row, int column): Tạo một TextArea mới với text, số hàng và cột đã cho.
Các phương thức được sử dụng phổ biến của lớp JTextArea trong Java Swing
1. public void setRows(int rows): Được sử dụng để thiết lập số hàng đã cho.
2. public void setColumns(int cols): Được sử dụng để thiết lập số cột đã cho.
3. public void setFont(Font f): Được sử dụng để thiết lập font đã cho.
4. public void insert(String s, int position): Được sử dụng để chèn text vào vị trí đã cho.
5. public void append(String s): Được sử dụng để phụ thêm text đã cho vào cuối tài liệu.
Chương trình ví dụ đơn giản đầu tiên về lớp JTextArea
package vn.kienthuclaptrinh.swing; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JTextArea; public class JTextAreaExam1 { JTextArea area; JFrame f; JTextAreaExam1() { f = new JFrame("Vi du JTextAreaExam - Java Swing"); area = new JTextArea(300, 300); area.setBounds(10, 30, 300, 300); area.setBackground(Color.gray); area.setForeground(Color.white); f.add(area); f.setSize(400, 400); f.setLayout(null); f.setVisible(true); } public static void main(String[] args) { new JTextAreaExam1(); } }
Chạy chương trình trên cho kết quả như sau:
Chương trình ví dụ khác về lớp JTextArea
package vn.kienthuclaptrinh.swing; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class JTextAreaExam2 { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public JTextAreaExam2(){ prepareGUI(); } public static void main(String[] args) { JTextAreaExam2 swingDemo = new JTextAreaExam2(); swingDemo.showTextAreaDemo(); } private void prepareGUI() { mainFrame = new JFrame("Vi du JTextAreaExam - Java Swing"); mainFrame.setSize(400, 300); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("", JLabel.CENTER); statusLabel.setSize(350, 100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showTextAreaDemo() { headerLabel.setText("Control in action: JTextArea"); JLabel commentlabel = new JLabel("Comments: ", JLabel.RIGHT); final JTextArea commentTextArea = new JTextArea( "Huong da su dung JTextArea\n" + "Java Swing.", 5, 20); JScrollPane scrollPane = new JScrollPane(commentTextArea); JButton showButton = new JButton("Show"); showButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { statusLabel.setText(commentTextArea.getText()); } }); controlPanel.add(commentlabel); controlPanel.add(scrollPane); controlPanel.add(showButton); mainFrame.setVisible(true); } }
Chạy chương trình trên cho kết quả như sau: