1
在Java中,可以在指定的JTextArea列號處插入字符串的任何函數。在特定位置在JTextArea中插入字符串
例如,
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
在Java中,可以在指定的JTextArea列號處插入字符串的任何函數。在特定位置在JTextArea中插入字符串
例如,
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
請你看看下面這個例子,它採用的JTextComponent的viewToModel()
方法。
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();
}
});
}
}
我的up_vote好的回答 – mKorbel
@mKorbel:THANKYOU並保持微笑:-) –
嗯......我不明白。你的意思是在某封信? – Doorknob
@PicklishDoorknob jtextarea列號 – FirmView
@Reimeus你的答案是正確的!!!,有/沒有替代 – mKorbel