در این قسمت تیم کدگیت را با آموزش JTextField در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
Java Swing
Swing قسمتی از کلاسهای پایهای جاوا بوده و برای طراحی و ساخت نرمافزارهای Window Base ساخته شده است. قبل از Swing کتابخانهای به نام AWT بوده است. قابلیتهایی مانند Light Weight (کم وزنی) و Customizable بودن، توانسته Swing را برتر از AWT قرار دهد. در این آموزش از کلاسهای Swing برای ساخت یک TextField استفاده میکنیم.
JFrame
JFrame در جاوا یک پنجره است که میتوان در آن Componentهایی مانند Jbutton، JLable، JTextField و …. قرار داد. همچنین میتوان هر کدام از Componentها را در Frame به صورت جدا صدا زده و به آنها دسترسی پیدا کرد. کمپوننتهای Swing باید حتما به JFrame اضافه شوند.
JTextField در جاوا
JTextField در جاوا کمپوننتی میباشد که به کاربر اجازه میدهد یک خط متن را نوشته یا ویرایش کند. به طور معمول از این کلاس در جهت ورود اطلاعات کاربر نظیر نام، نام خانوادگی، سن و …. استفاده میشود. در این قسمت دو مثال در مورد JtextField خواهیم زد. در مثال اول دو TextField با متنی از پیش تعیین شده و قابل ویرایش را به Frame اضافه میکنیم. در مثال دوم سه TextField را به همراه دو Button به Frame اضافه میکنیم و با توجه به Button زده شده ورودی TextField های اول و دوم را جمع یا تفریق کرده و در TextField سوم نمایش میدهیم.
مثال اول JTextField در جاوا
کد مثال اول Jtextfield در جاوا به صورت زیر میباشد:
class TextFieldExample {
public static void main(String args[]) {
JFrame f = new JFrame("TextField Example");
JTextField t1, t2;
t1 = new JTextField("Welcome to Codegate.");
t1.setBounds(50, 100, 200, 30);
t2 = new JTextField("Swing Tutorial");
t2.setBounds(50, 150, 200, 30);
f.add(t1);
f.add(t2);
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
}
}
همانطور که در کد بالا میبینید ابتدا یک Frame را ایجا کرده سپس دو TextField ساخته و در Constructor متن دلخواه آن TextFiled را نوشتیم (متنهای Welcome to Codegate و Swing Tutorial ). سپس به تنظیم جایگاه هر textfield در Frame با متد setbound پرداخته و در آخر TextFieldهای مورد نظر را به frame اضافه کردیم.
مثال دوم JTextField در جاوا
همانطور که در قسمت قبل گفته شد مثال دوم TextField کمی پیچیده تر است. ما دو TextField داریم که کاربر اعدادی را وارد آن میکند و دو Button داریم که عملیات جمع و تفریق را بر روی اعداد وارد شده توسط کاربر انجام میدهند. خروجی در TextFiled سومی قرار میگیرد که قابل ویراش نیست (مثل JLable). کد مثال دوم JTextField در جاوا به صورت زیر میباشد:
public class TextFieldExample implements ActionListener {
JTextField tf1, tf2, tf3;
JButton b1, b2;
TextFieldExample() {
JFrame f = new JFrame();
tf1 = new JTextField();
tf1.setBounds(50, 50, 150, 20);
tf2 = new JTextField();
tf2.setBounds(50, 100, 150, 20);
tf3 = new JTextField();
tf3.setBounds(50, 150, 150, 20);
tf3.setEditable(false);
b1 = new JButton("+");
b1.setBounds(50, 200, 50, 50);
b2 = new JButton("-");
b2.setBounds(120, 200, 50, 50);
b1.addActionListener(this);
b2.addActionListener(this);
f.add(tf1);
f.add(tf2);
f.add(tf3);
f.add(b1);
f.add(b2);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String s1 = tf1.getText();
String s2 = tf2.getText();
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s2);
int c = 0;
if (e.getSource() == b1) {
c = a + b;
} else if (e.getSource() == b2) {
c = a - b;
}
String result = String.valueOf(c);
tf3.setText(result);
}
public static void main(String[] args) {
new TextFieldExample();
}
در کد بالا ابتدا سه TextField و دو Button را تعریف کردیم. سپس به ترتیب شی آنها را ساخته و به Frame اضافه کردهایم. برای اینکه کاربر با کلیک بر روی Button عملیاتی را انجام دهد متد ActionPerformed (در آموزشهای قبل توضیح داده شده است) را نوشتیم. در این متد اعدادی که کاربر وارد کرده را خوانده و سپس عملیات جمع یا تفریق را انجام میدهیم. ما برای اینکه بدانیم چه عملیاتی انجام دهیم از متد getSource استفاده کردهایم. این متد Object که بر روی آن کلیک شده را برمیگرداند.
