Skip to content

Java Swing တွင် JTextField အသုံးပြုခြင်း

Java Swing မှာ JTextField ဆိုတာဟာ user ဆီကနေ စာသား (text) တွေကို input အဖြစ် ရယူဖို့အတွက် အသုံးပြုတဲ့ component တစ်ခု ဖြစ်ပါတယ်။ JTextField ကို အသုံးပြုပြီး ရိုးရှင်းတဲ့ text input field တွေကို ဖန်တီးနိုင်သလို၊ အဲ့ဒီထဲမှာ ရိုက်ထည့်ထားတဲ့ စာသားတွေကို ပြန်ဖတ်တာ၊ ပြုပြင်တာနဲ့ event handling တွေကိုလည်း လုပ်ဆောင်နိုင်ပါတယ်။ အောက်မှာ JTextField ကို အသုံးပြုပြီး ရိုးရှင်းတဲ့ example တစ်ခုကို ဖော်ပြထားပါတယ်။

java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextFieldExample {
    public static void main(String[] args) {
        // JFrame ဖြင့် window တစ်ခုကို ဖန်တီးပါ။
        JFrame frame = new JFrame("JTextField Example");

        // JTextField ဖြင့် text input field တစ်ခုကို ဖန်တီးပါ။
        JTextField textField = new JTextField(20); // 20 columns ပါသော text field (မျက်နှာပြင်ပေါ်တွင် ပေါ်မည့် အကျယ်)

        // JButton ဖြင့် Button တစ်ခုကို ဖန်တီးပါ။
        JButton button = new JButton("Submit");

        // Button ကို နှိပ်သောအခါ လုပ်ဆောင်မည့် event listener ကို ထည့်ပါ။
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // Text field ထဲမှ text ကို ဖတ်ပြီး message dialog ဖြင့် ပြပါ။
                String inputText = textField.getText();
                JOptionPane.showMessageDialog(frame, "You entered: " + inputText);
            }
        });

        // JPanel ဖြင့် components များကို စီစဉ်ပါ။
        JPanel panel = new JPanel();
        panel.add(textField);
        panel.add(button);

        // Panel ကို frame ထဲသို့ ထည့်ပါ။
        frame.add(panel);

        // Window ကို close လုပ်သောအခါ program ကို အလိုအလျောက် ရပ်ပါ။
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Window ၏ size ကို သတ်မှတ်ပါ။
        frame.setSize(400, 200);

        // Window ကို မြင်နိုင်အောင် ပြပါ။
        frame.setVisible(true);
    }
}

Code ရှင်းလင်းချက်

ဒီ code ထဲက အဓိကကျတဲ့ အစိတ်အပိုင်းတွေကို တစ်ခုချင်းစီ ထပ်ပြီး ရှင်းပြပါမယ်။

  1. JTextField

    JTextField ဟာ အသုံးပြုသူဆီက စာသား input တွေကို လက်ခံရယူဖို့အတွက် အသုံးပြုတဲ့ component ပါ။ new JTextField(20) ဆိုတာက မျက်နှာပြင်ပေါ်မှာ မြင်ရမယ့် စာလုံး 20 လုံးစာလောက် အကျယ်ရှိတဲ့ text field တစ်ခုကို ဖန်တီးတာ ဖြစ်ပါတယ်။

    java
    JTextField textField = new JTextField(20);

JTextField Example

  1. JButton

    JButton ဟာ User ရဲ့ လုပ်ဆောင်ချက် (user interaction) တွေကို ကိုင်တွယ်ဖို့ အသုံးပြုတဲ့ ခလုတ် component ဖြစ်ပါတယ်။ ဒီနေရာမှာ "Submit" ဆိုတဲ့ စာသားပါတဲ့ Button တစ်ခုကို ဖန်တီးထားပါတယ်။

    java
    JButton button = new JButton("Submit");
  2. Event Handling with ActionListener

    Button ကို နှိပ်လိုက်တဲ့အခါ JTextField ထဲက စာသားကို ဖတ်ပြီး message dialog နဲ့ ပြသဖို့အတွက် ActionListener interface ကို အသုံးပြုထားပါတယ်။

    java
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String inputText = textField.getText();
            JOptionPane.showMessageDialog(frame, "You entered: " + inputText);
        }
    });
    • getText() Method: JTextField ထဲမှ text ကို ဖတ်ရန် အသုံးပြုပါသည်။
    • JOptionPane.showMessageDialog: Message dialog box တစ်ခုကို ပြသရန် အသုံးပြုပါသည်။

JTextField Example

JTextField ၏ အခြား Features များ

JTextField သည် ရိုးရှင်းသော text input များကို ရယူရုံသာမက၊ အောက်ပါ features များကိုလည်း support ပေးပါသည်။

  1. Placeholder Text

    JTextField တွင် placeholder text ထည့်သွင်းနိုင်ပါသည်။

    java
    JTextField textField = new JTextField("Enter your name", 20);
  2. Text Alignment

    JTextField ၏ text ကို ဘယ်ဘက်၊ ညာဘက်၊ အလယ် စသည်ဖြင့် ချိန်ညှိနိုင်ပါသည်။

    java
    textField.setHorizontalAlignment(JTextField.CENTER); // Text ကို အလယ်တွင် ချိန်ညှိပါ။
  3. Text Limit

    JTextField တွင် ရိုက်ထည့်နိုင်သော text ၏ အရှည်ကို ကန့်သတ်နိုင်ပါသည်။

    java
    textField.setDocument(new PlainDocument() {
        @Override
        public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
            if (getLength() + str.length() <= 10) { // Maximum 10 characters
                super.insertString(offs, str, a);
            }
        }
    });