我想找出 JTextPane 文本的哪一部分被选中。尝试打电话JTextPane.getSelectionStart()
and JTextPane.getSelectionEnd()
,但它们总是返回等于当前插入符号位置的相同值。
我的问题是什么?
我将感谢任何获得当前选择的代码示例。
看一下JTextComponent#getSelectedText() http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#getSelectedText%28%29。您只需在您的实例上调用此方法即可JTextPane
它会返回您选择的文本JTextPane
。做了一个小例子:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class JavaApplication101 {
private JTextPane jTextPane;
private JButton btnGetSelectedText;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new JavaApplication101().createAndShowUI();
}
});
}
private void createAndShowUI() {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponents(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
private void initComponents(Container contentPane) {
jTextPane = new JTextPane();
btnGetSelectedText = new JButton("Get selected text");
btnGetSelectedText.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, jTextPane.getSelectedText());
}
});
contentPane.add(jTextPane, BorderLayout.NORTH);
contentPane.add(btnGetSelectedText, BorderLayout.SOUTH);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)