如何限制JTextField的输入位数?谢谢
另外帮忙看一看http://www.csdn.net/expert/Topic/431/431261.shtm
问题点数:20、回复次数:6Top
1 楼dreammaster(天涯)回复于 2001-12-20 16:39:41 得分 0
JTextField = new JTextField(xx);
xx为可以输入的位数Top
2 楼jin2001()回复于 2001-12-20 16:51:34 得分 0
To dreammaster(天涯) 不对吧,生成的文本框还是可以输入多位。见以下程序
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class TextTestFrame extends JFrame
implements DocumentListener
{ public TextTestFrame()
{ setTitle("TextTest");
setSize(300, 200);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
Container contentPane = getContentPane();
JPanel p = new JPanel();
hourField = new JTextField(3);
//hourField.setColumns(3);
//validate();
p.add(hourField);
hourField.getDocument().addDocumentListener(this);
minuteField = new JTextField("00", 3);
p.add(minuteField);
minuteField.getDocument().addDocumentListener(this);
contentPane.add(p, "South");
clock = new ClockPanel();
contentPane.add(clock, "Center");
}
public void insertUpdate(DocumentEvent e)
{ setClock();
}
public void removeUpdate(DocumentEvent e)
{ setClock();
}
public void changedUpdate(DocumentEvent e)
{
}
public void setClock()
{ int hours
= Integer.parseInt(hourField.getText().trim());
int minutes
= Integer.parseInt(minuteField.getText().trim());
clock.setTime(hours, minutes);
}
private JTextField hourField;
private JTextField minuteField;
private ClockPanel clock;
}
class ClockPanel extends JPanel
{ public void paintComponent(Graphics g)
{ super.paintComponent(g);
g.drawOval(0, 0, 100, 100);
double hourAngle
= 2 * Math.PI * (minutes - 3 * 60) / (12 * 60);
double minuteAngle
= 2 * Math.PI * (minutes - 15) / 60;
g.drawLine(50, 50,
50 + (int)(30 * Math.cos(hourAngle)),
50 + (int)(30 * Math.sin(hourAngle)));
g.drawLine(50, 50,
50 + (int)(45 * Math.cos(minuteAngle)),
50 + (int)(45 * Math.sin(minuteAngle)));
}
public void setTime(int h, int m)
{ minutes = h * 60 + m;
repaint();
}
private int minutes = 0;
}
public class TextTest
{ public static void main(String[] args)
{ JFrame frame = new TextTestFrame();
frame.show();
}
}
Top
3 楼hexiaofeng(java爱好者)回复于 2001-12-20 16:51:37 得分 0
看JTextField.getText().length的长度Top
4 楼CanFly(目标明确并做所必须做的一切)回复于 2001-12-20 17:02:53 得分 0
同意楼上的意见!
document在有些方面很方便!
如果单存判断输入长度可以直接在输入事件中判断JTextField.getText().lengthTop
5 楼jin2001()回复于 2001-12-20 20:20:34 得分 0
请教 CanFly(我会飞):如何在以上程序中具体实现,多谢多谢 Top
6 楼CanFly(目标明确并做所必须做的一切)回复于 2001-12-22 19:13:33 得分 20
这个虽然不是判断getText().length的程序!
但是所用的事件差不多了!
你可以改改!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class keytest extends JFrame implements KeyListener
{
private JTextField jt=new JTextField();
public keytest()
{
Container ctp=getContentPane();
ctp.setLayout(null);
ctp.add(jt);
jt.setBounds(20,20,100,30);
setTitle("keytest");
setSize(300,300);
jt.addKeyListener(this);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void keyPressed(KeyEvent evt)
{
int keyCode =evt.getKeyCode();
//jt.setText("");
if (keyCode==KeyEvent.VK_RIGHT && evt.isShiftDown())
{jt.setText("Shit+->");}
if (keyCode==KeyEvent.VK_ENTER) jt.setText("");
//else {jt.setText(""); }
}
public void keyTyped(KeyEvent evt){}
public void keyReleased(KeyEvent evt)
{
int keyCode =evt.getKeyCode();
jt.setText("");
if (keyCode==KeyEvent.VK_RIGHT && evt.isShiftDown())
jt.setText("Shit+->");
//else
}
public static void main (String args[])
{
JFrame test =new keytest();
test.setVisible(true);
}
}Top
相关问题
- 怎么限制DBEDIT里面输入的数字的位数。
- 在edit控件输入数字时,怎样能够限制输入的位数?
- 请问,编辑框中如何限制用户输入的位数啊?
- 限制文本中输入数字小数点后的位数?????在线等!!!!!!!!!!!
- jTextField如何限制输入字符长度?
- 请问如何做到限制textbox中数字的小数位数,比如输入3位小数后,就不能输入小数了?谢谢
- 如何限制JTEXTFIELD的输入内容,及DIALOG字体的问题
- 怎么限制jTextField文本中只能输入的是数字~~而输入字符都无效没反应????
- 再次送分!如何限制edit输入数字并且一定要5位数字?解决后,立即结帖!
- ComboBox中的限制输入




