java从键盘输入代码长度_JAVA代码中怎么限制输入的字符长度

news/2024/7/4 9:06:45

匿名用户

1级

2016-11-07 回答

使用DocumentFilter

import java.awt.EventQueue;

import java.awt.GridBagLayout;

import java.awt.Toolkit;

import javax.print.attribute.AttributeSet;

import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.text.AbstractDocument;

import javax.swing.text.BadLocationException;

import javax.swing.text.DocumentFilter;

import javax.swing.text.DocumentFilter.FilterBypass;

public class FilterTest {

public static void main(String[] args) {

new FilterTest();

}

public FilterTest() {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {

}

JTextField field = new JTextField(10);

((AbstractDocument)field.getDocument()).setDocumentFilter(new SizeFilter(5));

JFrame frame = new JFrame("Testing");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new GridBagLayout());

frame.add(field);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

});

}

public class SizeFilter extends DocumentFilter {

private int maxCharacters;

public SizeFilter(int maxChars) {

maxCharacters = maxChars;

}

public void insertString(FilterBypass fb, int offs, String str, AttributeSet a)

throws BadLocationException {

if ((fb.getDocument().getLength() + str.length()) <= maxCharacters) {

super.insertString(fb, offs, str, a);

} else {

Toolkit.getDefaultToolkit().beep();

}

}

public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)

throws BadLocationException {

if ((fb.getDocument().getLength() + str.length()

- length) <= maxCharacters) {

super.replace(fb, offs, length, str, a);

} else {

Toolkit.getDefaultToolkit().beep();

}

}

}

}

追问:

作为一个JAVA初学者,表示这串代码压力很大

(#゚Д゚) 问个小问题,我是通过int转string length的方式来完成字符长度限制的,其中我加入try语句用来报错返回,但是编译通过了,但是catch语句没有被触发该怎么办,报错码是InputMismatchException


http://www.niftyadmin.cn/n/529822.html

相关文章

flashlite3增加的功能

flashlite3增加的功能 Flash Lite 3.0 的新增功能Writing by zikey on Monday, 8 of October , 2007 at 2:54 pm性能改进: 图形呈现加速 快速有效地呈现文本滚动、矢量转换和带有不透明填充的动画矢量。运行时内存减少 在运行时”惰性加载”ActionScript? 类&#xff0c;这样&…

php 接口升级,App版本升级接口

**APP版本升级**>[success] 1.创建版本控制表~~~CREATE TABLE td_app_update (id int(100) NOT NULL AUTO_INCREMENT,version varchar(12) DEFAULT 0 COMMENT 版本号,url_name varchar(100) DEFAULT NULL COMMENT app下载链接地址,upgrade int(10) DEFAULT 0 COMMENT 2强制升…

MyBatis-resultType 与 resultMap 中的几种返回类型

一、返回集合 1.返回JavaBean集合 public List<MyUser> selectMyUserByNameLike(String name); <!-- resultType 集合内的元素类型 --> <select id"selectMyUserByNameLike" resultType"myUser" parameterType"string">select…

flickr 相片url来源解析

相片來源 URL 知道相片的 ID、伺服器 ID、農場 ID 和密鑰&#xff08;如許多 API 方法返回的那樣&#xff09;後&#xff0c;你便可構建連結至相片的來源 URL。 URL 會採用以下格式&#xff1a;http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg or ht…

flickr 用户信息详析

flickr.people.getInfo Get information about a user.認證 此方法不需要認證。 引數 api_key &#xff08;必需的&#xff09; Your API application key. See here for more details. user_id &#xff08;必需的&#xff09; The NSID of the user to fetch information abo…

BZOJ1390 CEOI2008 Fences 凸包、Floyd最小环/DP

传送门 为了方便描述把固定点叫做白色点&#xff0c;Tree叫做黑色点 一种基于特殊性质的做法&#xff1a; 如果不算入选白色的权值&#xff0c;那么一定会选中所有白色点构成的凸包上的点&#xff0c;因为能够尽可能围更多的黑色点。然后我们在这个基础上删凸包上无用的白色点&…

respond.php,respond.php

//WEBSC商城资源define(IN_ECS, true);require dirname(__FILE__) . /includes/init.php;require ROOT_PATH . includes/lib_payment.php;require ROOT_PATH . includes/lib_order.php;$pay_code (!empty($_REQUEST[code]) ? trim($_REQUEST[code]) : );if (empty($pay_code)…

javascript检测flash版本

今天要做一个根据用户安装的是什么flash版本&#xff0c;为其播放哪断视频&#xff0c;所以搜了先用javaScrip检测出来版本后&#xff0c;再将其参数发给flash&#xff0c; <SCRIPT typetext/javascript><!--var i_flash;var v_flash;// Netscape if (navigator.plugi…