Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में JTextArea के अंदर लाइन नंबर कैसे प्रदर्शित करें?


JTextArea JTextComponent का एक उपवर्ग है और यह एक बहु-लाइन टेक्स्ट घटक है जिसका उपयोग टेक्स्ट प्रदर्शित करने या उपयोगकर्ता को टेक्स्ट दर्ज करने की अनुमति देने के लिए किया जाता है। एक JTextArea एक CaretListener इंटरफ़ेस उत्पन्न कर सकता है, जो कैरेट अपडेट इवेंट को सुन सकता है। डिफ़ॉल्ट रूप से, JTextArea लाइन नंबर प्रदर्शित नहीं करता है, हमें DocumentListener इंटरफ़ेस का उपयोग करके कोड को कस्टमाइज़ करना पड़ता है।

उदाहरण

import java.awt.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.text.Element; 

public class LineNumberTextAreaTest extends JFrame { 
    private static JTextArea textArea; 
    private static JTextArea lines; 
    private JScrollPane jsp; 
    
    public LineNumberTextAreaTest() { 
        setTitle("LineNumberTextArea Test"); 
        jsp = new JScrollPane(); 
        textArea = new JTextArea(); 
        lines = new JTextArea("1"); 
        lines.setBackground(Color.LIGHT_GRAY); 
        lines.setEditable(false); 
        // JTextArea के अंदर लाइन नंबर लागू करने के लिए कोड 
        textArea.getDocument().addDocumentListener(new DocumentListener() { 
            public String getText() { 
                int caretPosition = textArea.getDocument().getLength(); 
                Element root = textArea.getDocument().getDefaultRootElement(); 
                String text = "1" + System.getProperty("line.separator"); 
                for(int i = 2; i < root.getElementIndex(caretPosition) + 2; i++) { 
                    text += i + System.getProperty("line.separator"); 
                } 
                return text; 
            } 
            @Override 
            public void changedUpdate(DocumentEvent de) { 
                lines.setText(getText()); 
            } 
            @Override 
            public void insertUpdate(DocumentEvent de) { 
                lines.setText(getText()); 
            } 
            @Override 
            public void removeUpdate(DocumentEvent de) { 
                lines.setText(getText()); 
            } 
        }); 
        jsp.getViewport().add(textArea); 
        jsp.setRowHeaderView(lines); 
        add(jsp); 
        setSize(400, 275); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        setLocationRelativeTo(null); 
        setVisible(true); 
    } 
    public static void main(String[] args) { 
        new LineNumberTextAreaTest(); 
    } 
}

आउटपुट

Java में JTextArea के अंदर लाइन नंबर कैसे प्रदर्शित करें?


  1. Java में JTextArea के अंदर बोल्ड टेक्स्ट कैसे प्रदर्शित करें? Java में JTextArea के अंदर बोल्ड टेक्स्ट कैसे प्रदर्शित करें?

    एक JTextArea क्लास JTextComponent को विस्तारित करती है और उपयोगकर्ता को इसके अंदर टेक्स्ट की कई लाइनें दर्ज करने की अनुमति देती है। एक JTextArea एक CaretListener इंटरफ़ेस उत्पन्न कर सकता है, जो कैरेट अपडेट इवेंट को सुन सकता है। हम setFont() विधि का उपयोग करके JTextArea के अंदर टेक्स्ट पर फ़ॉन्ट सेट

  1. Java में JTextArea के अंदर लाइन रैप और वर्ड रैप टेक्स्ट कैसे लागू करें? Java में JTextArea के अंदर लाइन रैप और वर्ड रैप टेक्स्ट कैसे लागू करें?

    एक JTextArea टेक्स्ट प्रदर्शित करने या उपयोगकर्ता को टेक्स्ट दर्ज करने की अनुमति देने के लिए एक बहु-लाइन टेक्स्ट घटक है और जब हम JTextArea घटक की कार्यक्षमता को लागू करने का प्रयास कर रहे होते हैं तो यह एक CaretListener इंटरफ़ेस उत्पन्न करेगा। एक JTextArea क्लास Java में JTextComponent क्लास को विर

  1. Java में JTextField में कैरेक्टर्स की संख्या कैसे सीमित करें Java में JTextField में कैरेक्टर्स की संख्या कैसे सीमित करें

    एक JTextField सबसे महत्वपूर्ण कंपोनेंट्स में से एक है जो उपयोगकर्ता को सिंगल लाइन फॉर्मेट में एक इनपुट टेक्स्ट वैल्यू दर्ज करने की अनुमति देता है। एक JTextField में उपयोगकर्ता द्वारा दर्ज किए जा सकने वाले कैरेक्टर्स की संख्या को PlainDocument क्लास का उपयोग करके प्रतिबंधित किया जा सकता है।नीचे दिए ग