Το στοιχείο JTextArea

Το στοίχειο JTextArea είναι μια περιοχή κειμένου στην οποία ο χρήστης μπορεί να πληκτρολογήσει πολλές γραμμές κειμένου.

Για να προσθέσω ένα αντικείμενο JTextArea σε ένα παράθυρο ακολουθώ (όπως σχεδόν σε όλα τα στοιχεία) τρία βασικά βήματα. Πρώτα δημιουργώ το αντικείμενο, μετά του δίνω τα χαρακτηριστικά που θέλω να έχει και τέλος το τοποθετώ επάνω στο παράθυρο.

Η θέση του στο παράθυρο εξαρτάται από το Layout του παραθύρου. Στα παραδείγματα που ακολουθούν χρησιμοποιούμε το setLayout(null);

Αυτό σημαίνει ότι όταν τοποθετώ το στοιχείο θα πρέπει να δώσω θέση (συντεταγμένες x και y) και διαστάσεις (πλάτος και ύψος). Αυτό γίνεται με την εντολή setBounds(x, y, width, height);.

import javax.swing.*;
class App extends JFrame
{
    public static void main(String[] args)
    {
        App frame = new App();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setTitle("my first application");
        frame.setLayout(null); //ορισμός layout
        frame.setVisible(true);
    }

    public App()
    {
        //Δημιουργία αντικειμένου
        JTextArea myTextArea=new JTextArea();

        //ορισμός χαρακτηριστικών
        myTextArea.setLineWrap(true);
        myTextArea.setBounds(0, 0, 350, 200);

        //πρόσθεση αντικειμένου στο παράθυρο με την εντολή add.
        add(myTextArea);     
    }
}
jtextarea
package test;

import javax.swing.*;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader; //needed for reading lines

public class Fileinput extends JFrame {
    public JTextArea myTextArea;
    public JScrollPane scroll;
    
    public static void main(String[] args) {
        Fileinput frame = new Fileinput();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 200);
        frame.setTitle("my first application");
        frame.setLayout(null); //ορισμός layout
        frame.setVisible(true);
    }

    public Fileinput() {
        //Δημιουργία αντικειμένων
        myTextArea = new JTextArea();
        scroll = new JScrollPane(myTextArea);

        //ορισμός χαρακτηριστικών
        myTextArea.setLineWrap(true);
        //myTextArea.setBounds(0, 0, 300, 150);
        scroll.setBounds(0, 0, 300, 150);

        //πρόσθεση αντικειμένου στο παράθυρο με την εντολή add.
        add(scroll);

        openFile();
    }

    private void openFile() {
        BufferedReader in = null;
        try {
            FileReader f = new FileReader("text.txt");
            in = new BufferedReader(f); //needs FileReader
            String L;
            
            //Διαβάζει γραμμή - γραμμή
            while((L=in.readLine())!=null) {
                //Γράφει μια γραμμή
                //myTextArea.setText(L);

                //προσθέτει γραμμές με enter στο τέλος
                myTextArea.append(L + '\n');
            }
        } catch(IOException e){
            System.out.print(e.getMessage());
        }  
        finally {
            try {
                if(in != null) in.close();
            } catch (IOException ex) {
                System.out.print(ex.getMessage());
            }
        }
    }   
}