در این قسمت تیم کدگیت را با آموزش JTextArea در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر میباشد:
Java Swing
Swing قسمتی از کلاسهای پایهای جاوا بوده و برای طراحی و ساخت نرمافزارهای Window Base ساخته شده است. قبل از Swing کتابخانهای به نام AWT بوده است. قابلیتهایی مانند Light Weight (کم وزنی) و Customizable بودن، توانسته Swing را برتر از AWT قرار دهد. در این آموزش از کلاسهای Swing برای ساخت یک JTextArea استفاده میکنیم.
JFrame
JFrame در جاوا یک پنجره است که میتوان در آن Componentهایی مانند Jbutton، JLable، JTextField و …. قرار داد. همچنین میتوان هر کدام از Componentها را در Frame به صورت جدا صدا زده و به آنها دسترسی پیدا کرد. کمپوننتهای Swing باید حتما به JFrame اضافه شوند.
JTextArea در جاوا
JTextArea در جاوا برای نمایش چند خط متن استفاده میشود. همچنین میتوان این خطوط را ویرایش کرد. در این آموزش دو مثال ساده در مورد JTextArea خواهیم زد. مثال اول یک متن ساده را در این کمپوننت نمایش میدهیم و در مثال دوم با استفاده از JTextArea یک متن را از کاربر دریافت و تعداد کلمات و حروف آن را شمارش و با JLable نمایش میدهیم.
مثال اول JTextArea در جاوا
کد مثال اول JTextArea به صورت زیر میباشد:
public class TextAreaExample {
TextAreaExample() {
JFrame f = new JFrame();
JTextArea area = new JTextArea("Welcome to CodeGate");
area.setBounds(10, 30, 200, 200);
f.add(area);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String args[]) {
new TextAreaExample();
}
}
در کد بالا ابتدا یک Frame را ساخته و JTextArea را new کردیم و سپس با استفاده از Constructor یک متن در JTextArea نوشتیم. در ادامه JTextArea را در Frame قرار دادیم.
مثال دوم JTextArea در جاوا
در این مثال از یک JButton و دو JLable علاوه بر JTextArea کمک خواهیم گرفت. کاربر درون JTextArea متنی مینویسد و با کلیک بر روی JButton تعداد کلمات و حروف در Jlableهای ما نمایش داده میشود. کد مثال دوم JTextArea در جاوا به صورت زیر است:
public class TextAreaExample implements ActionListener {
JLabel l1, l2;
JTextArea area;
JButton b;
TextAreaExample() {
JFrame f = new JFrame();
l1 = new JLabel();
l1.setBounds(50, 25, 100, 30);
l2 = new JLabel();
l2.setBounds(160, 25, 100, 30);
area = new JTextArea();
area.setBounds(20, 75, 250, 200);
b = new JButton("Count Words");
b.setBounds(100, 300, 120, 30);
b.addActionListener(this);
f.add(l1);
f.add(l2);
f.add(area);
f.add(b);
f.setSize(450, 450);
f.setLayout(null);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String text = area.getText();
String words[] = text.split("\\s");
l1.setText("Words: " + words.length);
l2.setText("Characters: " + text.length());
}
public static void main(String[] args) {
new TextAreaExample();
}
}
همانطور که در کد بالا میبینید ابتدا JTextArea و JButton و JLable ها را ساخته ایم سپس آنها را در Frame قرار دادیم. برای کلیک بر روی Button نیز ابتدا ActionListener را به کلاس خود Implements کرده و سپس متد actionPerformed را نوشتیم. درون این متد ابتدا متن JTextArea را خوانده و سپس با استفاده از متد Split و length، تعداد حروف و کلمات متن JTextArea را شمارش کردیم. در انتها نیز با کمک متد setText آنها را در JLable نمایش دادیم.