java 的textfield类怎么选中指定的字符数?是那个方法?

解决方案 »

  1.   

    final JTextField tf = ...;
    final JButton button = ...;
    int start = ...;
    int end = ...;
    button.addActionListener(new ActionListener(){
        @Override public void actionPerformed(ActionEvent e){
            tf.setSelectionStart(start);
            tf.setSelectionEnd(end);
        }
    });
      

  2.   

    start=...?3点代表声明   我试过了  还是不行
      

  3.   

    ... 意思你这里该是你写的代码。你选择的区域,比如
    int start = 2;
    int end = 5; 
      

  4.   

    import 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;
                }
            }
        }
    }
      

  5.   

    ok了  终于好了  关键是 input.requestFocusInWindow();