Inserting String in JTextArea at specific location

Is there any function in Java where one can insert Strings at a specified JTextArea column number.

for example,

String str = "This is a sample text"

String => column Number

This => at 0

is => at 10

a => at 14

sample => at 20

text => at 25

Answers


Please do have a look at this example, which uses JTextComponent's viewToModel() method.

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

public class TextAreaExample extends JFrame
{
    private JTextArea tarea =  new JTextArea(10, 10);
    private JTextField tfield = new JTextField(10);
    private Object[] possibleValues = { "First", "Second", "Third" };

    private void createAndDisplayGUI()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        tarea.setText("Hello there\n");
        tarea.append("Hello student://");
        JScrollPane scroll = new JScrollPane(tarea);

        tfield.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent ae)
            {
                tarea.append(tfield.getText() + "\n");
            }
        });

        tarea.addMouseListener(new MouseAdapter()
        {
            public void mouseClicked(MouseEvent me)
            {
                int x = me.getX();
                int y = me.getY();
                System.out.println("X : " + x);
                System.out.println("Y : " + y);
                int startOffset = tarea.viewToModel(new Point(x, y));
                System.out.println("Start Offset : " + startOffset);
                String text = tarea.getText();
                String firstPart = text.substring(0, startOffset);
                String secondPart = text.substring(startOffset, text.length());

                Object selectedValue = JOptionPane.showInputDialog(null,
                                                  "Choose one", "Input",
                                                  JOptionPane.INFORMATION_MESSAGE, null,
                                                  possibleValues, possibleValues[0]);

                if (selectedValue != null)  
                {
                    String newText = firstPart + " " 
                                               + (String) selectedValue
                                               + " "
                                               + secondPart;
                    tarea.setText(newText);                        
                }
            }
        });

        getContentPane().add(scroll, BorderLayout.CENTER);
        getContentPane().add(tfield, BorderLayout.PAGE_END);
        pack();
        setLocationByPlatform(true);
        setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                new TextAreaExample().createAndDisplayGUI();
            }
        });
    }
}

Need Your Help

how to develop dbms independent application using Microsoft tech?

c# .net silverlight database

I need to write an app in such a way that it should not worry about the incoming DBMS. It can be Oracle, PostgreSQL, MySql etc..

ThreadAbortException in at System.Net.UnsafeNclNativeMethods.OSSOCK.recv

.net windows sockets

Suddenly, this exception started happening in my program. Any ideas, what can be the reason?