如何设置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多线程同步问题 Socket类中connect(SocketAddress endpoint) 方法是干什么用的? 请教高手帮看看数据库连接问题 关于接口的问题---基础问题~~~~~~` 求如何任意截取字符串 请问如何从jar包中提取所有的类文件的类名? 画圆动画程序(多线程和Applet) 请教一个java操作数据库的问题! 这是什么错误?exception:com.ms.security.SecurityExceptionEx[Computer_client.start]: 初学javaSe ,求大神帮做道题来理解代码 哪个浏览器是用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)))