پاسخگویی هم زمان به رویدادهای دو کادر متنی در جاوا :
در جاوا، پاسخگویی هم زمان به دو کادر متنی یکی از مواردی است که در برنامهنویسی کاربرد دارد. هم زمان بودن یعنی دو عملیات میتوانند به صورت همزمان اجرا شوند و کاربر میتواند در همان زمان ورودیهای متنی را به دو کادر متنی مختلف وارد کند و برنامه نیز بتواند هر دو ورودی را به صورت همزمان پردازش کند.
برای پاسخگویی هم زمان به دو کادر متنی در جاوا، میتوان از روشهای مختلفی استفاده کرد. یکی از روشهای معمول استفاده از رویدادها و شنوندهها است. در این روش، هر کادر متنی به یک شنونده (listener) متصل میشود که وظیفهی آن است که ورودیهای کاربر را دریافت کند و برنامه را بر اساس ورودیهای دریافتی اجرا کند.
برای مثال، فرض کنید دو کادر متنی به نامهای “نام” و “نام خانوادگی” وجود دارد و هدف ما این است که وقتی کاربر نام خود را وارد میکند، نام کامل او در یک کادر متنی دیگر نمایش داده شود. برای این منظور، میتوانیم از رویداد “تغییر محتوای کادر متنی” استفاده کنیم. هر زمان که محتوای کادر متنی “نام خانوادگی” تغییر کند، یک شنونده متصل به آن کادر متنی فعال میشود و نام و نام خانوادگی را از دو کادر متنی میخواند و در کادر متنی دیگر نمایش میدهد.
برای اتصال شنونده به کادر متنی، از متد “addActionListener” استفاده میکنیم. این متد یک شنونده را به کادر متنی متصل میکند و هر زمان که ورودی کاربر تغییر کند، شنونده فعال میشود و کد مربوط به پردازش ورودی را انجام میدهد.
نمونه کد زیر نحوهی پاسخگویی هم زمان به دو کادر متنی “نام” و “نام خانوادگی” را نشان میدهد:
“`java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TwoTextFieldExample extends JFrame {
private JTextField firstNameTextField;
private JTextField lastNameTextField;
private JTextField fullNameTextField;
public TwoTextFieldExample() {
setTitle(“Two Text Field Example”);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
firstNameTextField = new JTextField(10);
lastNameTextField = new JTextField(10);
fullNameTextField = new JTextField(20);
fullNameTextField.setEditable(false);
add(new JLabel(“First Name: “));
add(firstNameTextField);
add(new JLabel(“Last Name: “));
add(lastNameTextField);
add(new JLabel(“Full Name: “));
add(fullNameTextField);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String firstName = firstNameTextField.getText();
String lastName = lastNameTextField.getText();
String fullName = firstName + ” ” + lastName;
fullNameTextField.setText(fullName);
}
};
firstNameTextField.addActionListener(listener);
lastNameTextField.addActionListener(listener);
}
public static void main(String[] args) {
TwoTextFieldExample example = new TwoTextFieldExample();
example.setSize(300, 150);
example.setVisible(true);
}
}
“`
در کد بالا، یک کلاس با نام TwoTextFieldExample تعریف شده است که از کلاس JFrame ارثبری میکند. در این کلاس، سه کادر متنی برای نام، نام خانوادگی و نام کامل تعریف شده است. سپس کد مربوط به اتصال شنونده و پردازش ورودیها نوشته شده است. در نهایت، یک نمونه از این کلاس ساخته شده و نمایش داده میشود.
با اجرای برنامه و وارد کردن نام و نام خانوادگی، نام کامل فرد در کادر متنی مربوطه نمایش داده میشود. این نمونه کد تنها یک مثال ساده است و میتوان با افزودن کادر متنیها و کد مربوط به آنها، پاسخگویی همزمان به تعداد بیشتری کادر متنی را پیادهسازی کرد.