Java codeimport java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class Example {
public static void main(final java.lang.String[] args) {
java.awt.EventQueue.invokeLater(new java.lang.Runnable(){
@Override public void run(){
JFrame frame = new JFrame("Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
Box container = Box.createVerticalBox();
Box top = Box.createHorizontalBox();
Box bottom = Box.createHorizontalBox();
final JTextField input = new JTextField();
final JTextField from = new JTextField("0",3);
from.setDocument(new HereDocument(input));
final JTextField to = new JTextField("1",3);
from.setDocument(new HereDocument(input));
final JButton select = new JButton("Select");
final JLabel status = new JLabel("Selected Text:");
select.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
input.setSelectionStart(Integer.parseInt(from.getText()));
input.setSelectionEnd(Integer.parseInt(to.getText()));
status.setText(String.format("Selected Text: %s",input.getSelectedText()));
input.requestFocusInWindow();
}
});
top.add(new JLabel("Input:"));
top.add(Box.createHorizontalStrut(3));
top.add(input);
bottom.add(select);
bottom.add(Box.createHorizontalStrut(5));
bottom.add(new JLabel("From:"));
bottom.add(Box.createHorizontalStrut(3));
bottom.add(from);
bottom.add(Box.createHorizontalStrut(5));
bottom.add(new JLabel("To:"));
bottom.add(to);
container.add(top);
container.add(Box.createVerticalStrut(5));
container.add(bottom);
container.add(Box.createVerticalStrut(5));
container.add(status);
container.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
frame.setContentPane(container);
frame.pack();
frame.setVisible(true);
}
});
}
private static class HereDocument extends PlainDocument {
private JTextField input;
public HereDocument(JTextField input){
this.input = input;
}
@Override public void insertString(int offset, String s, AttributeSet as)
throws BadLocationException {
if (s.matches("[0-9]*") && ((getLength()+s.length()) <= input.getText().length())) {
super.insertString(offset,s,as);
}else {
return;
}
}
}
}