如何设置TextField内容长度最大限制 我想让TextField中的内容只能输入数字或英文字母,并设置它的最大长度不可超过某个值,该怎么设啊? 还一个问题,如何能做到将JTable表格中的内容能按我的要求排序,并由我来设置显示哪行不显示哪行. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我Blog中写过一个这样的例子,希望对你有帮助:http://blog.csdn.net/mq612/archive/2006/09/29/1305413.aspx 通过Document实现:myTextField.setDocument ( new PlainDocument () { public void insertString( int offset , String s , AttributeSet attributeSet ) throws BadLocationException { if ( s == null || offset < 0 ) { return; } for ( int i = 0; i < s.length; i++ ) { if ( getLength () > MAX_LENGTH - 1 or !Character.isLetterOrDigit(s.charAt(i)) { JOptionPane.showMessageDialog ( null , "Invalid char!" , "Error", JOptionPane.YES_OPTION ); break; } super.insertString ( offset + i , s.substring ( i , i + 1 ) , attributeSet ); } return; } } ); 哥哥,我是初学者,你这个我不太会用,看我把它加到这里怎么弄能没错误?import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.text.BadLocationException;import javax.swing.text.PlainDocument;public class Text extends JFrame {JPanel panel=new JPanel();JLabel label=new JLabel("用户名");JTextField textfield=new JTextField();protected static final int MAX_LENGTH = 8; /** * Launch the application * @param args */ public static void main(String args[]) { try { Text frame = new Text(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } public Text() { super(); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().add(panel); panel.setLayout(new GridBagLayout()); final GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new Insets(10, 100, 100, 0); panel.add(label, gridBagConstraints); final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints(); gridBagConstraints_1.ipadx = 120; gridBagConstraints_1.gridx = 1; gridBagConstraints_1.gridy = 0; gridBagConstraints_1.insets = new Insets(5, 20, 100, 218); panel.add(textfield, gridBagConstraints_1); textfield.setDocument ( new PlainDocument () { public void insertString( int offset , String s , AttributeSet attributeSet ) throws BadLocationException { if ( s == null || offset < 0 ) { return; } for ( int i = 0; i < s.length; i++ ) { if ( getLength () > MAX_LENGTH - 1 or !Character.isLetterOrDigit(s.charAt(i)) { JOptionPane.showMessageDialog ( null , "Invalid char!" , "Error", JOptionPane.YES_OPTION ); break; } super.insertString ( offset + i , s.substring ( i , i + 1 ) , attributeSet ); } return; } } ); } } 1. 导入 import javax.swing.text.AttributeSet;2. 循环和条件语句不对:for ( int i = 0; i < s.length() ; i++ ){ if ( getLength () > MAX_LENGTH - 1 || !Character.isLetterOrDigit(s.charAt(i))) 电子邮件@后域名如何才能知道正确地址? java api 的一个方法参数..不懂,求解 提问:逐个显示字体 关于java垃圾回收 求助sql查询 sql拼的好的进来 谢谢咯 为什么我的JSP连接Oracle总报IO错误? 从socket读东东,对方不给出长度说明,我怎样高效准确的读出他通过socket传给我的东东? 求助:JAVA读取.txt文件的问题 java.lang.IllegalArgumentException是什么异常 (调查)搞 "人机界面设计" "程序界面设计" 的程序员多不 ? 工资如何 ? 哪个浏览器是用Java写的呢? 数组的一个小问题,
http://blog.csdn.net/mq612/archive/2006/09/29/1305413.aspx
myTextField.setDocument ( new PlainDocument ()
{
public void insertString( int offset , String s ,
AttributeSet attributeSet ) throws
BadLocationException
{
if ( s == null || offset < 0 )
{
return;
} for ( int i = 0; i < s.length; i++ )
{
if ( getLength () > MAX_LENGTH - 1 or
!Character.isLetterOrDigit(s.charAt(i))
{
JOptionPane.showMessageDialog ( null ,
"Invalid char!" ,
"Error",
JOptionPane.YES_OPTION );
break;
}
super.insertString ( offset + i , s.substring ( i , i + 1 ) ,
attributeSet );
}
return;
}
} );
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;public class Text extends JFrame {JPanel panel=new JPanel();
JLabel label=new JLabel("用户名");
JTextField textfield=new JTextField();
protected static final int MAX_LENGTH = 8;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
Text frame = new Text();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public Text() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(panel);
panel.setLayout(new GridBagLayout());
final GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new Insets(10, 100, 100, 0);
panel.add(label, gridBagConstraints);
final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();
gridBagConstraints_1.ipadx = 120;
gridBagConstraints_1.gridx = 1;
gridBagConstraints_1.gridy = 0;
gridBagConstraints_1.insets = new Insets(5, 20, 100, 218);
panel.add(textfield, gridBagConstraints_1);
textfield.setDocument ( new PlainDocument ()
{
public void insertString( int offset , String s ,
AttributeSet attributeSet ) throws
BadLocationException
{
if ( s == null || offset < 0 )
{
return;
} for ( int i = 0; i < s.length; i++ )
{
if ( getLength () > MAX_LENGTH - 1 or
!Character.isLetterOrDigit(s.charAt(i))
{
JOptionPane.showMessageDialog ( null ,
"Invalid char!" ,
"Error",
JOptionPane.YES_OPTION );
break;
}
super.insertString ( offset + i , s.substring ( i , i + 1 ) ,
attributeSet );
}
return;
}
} );
}
}
2. 循环和条件语句不对:
for ( int i = 0; i < s.length() ; i++ )
{
if ( getLength () > MAX_LENGTH - 1 ||
!Character.isLetterOrDigit(s.charAt(i)))