java textfield方法,java 的textfield类解决办法

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;

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值