我现有一个输入框,JTextField,当我在输入框中输入数据的时候,我想将输入的数据全部转换成大写(你输入一个a后,马上变成大写的A,再输入一个也是如此),这个怎么来实现,谢谢各位,急,谢谢!

解决方案 »

  1.   

    先定义一个字符串数组
    String []original = null;
    JTextField jtxt =new JTextField();
    original = jtxt.getText();
    for(int i=0; i<original.length(); i++)
    {}
      

  2.   

    在键盘事件中把ascii码加上32就行了
      

  3.   

    对不起,上面的不要看,我重写一个!
    String original = null;
    JTextField jtxt =new JTextField();
    original = jtxt.getText();
    for(int i=0; i<original.length(); i++)
    {
        if(original.charAt(i)>='a' && original.charAt(i)<='z')
           original.charAt(i)= original.charAt(i)-32; //小写到大写为ASCII码-32
    }
    jtxt.setText=original;
    大概就是这样了!
    你试试吧!
      

  4.   

    http://blog.csdn.net/irvine007/archive/2005/05/13/374235.aspx
    看看这个,原理是一样的。
    把JNumberTextField类简单修改一下就能满足你的要求了。
      

  5.   

    if(original.charAt(i)>='a' && original.charAt(i)<='z')
           original.charAt(i)= original.charAt(i)-32;这个有错?
      

  6.   

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;class Test extends JFrame
    {
    JTextField ta = new JTextField();
    Test()
    {
    ta.addKeyListener(new Listener(ta));
    this.add(ta);
    this.setSize(200,200);
    this.setVisible(true);
    }
    public static void main(String args[])
        {
         new Test();
        }
    }class Listener extends KeyAdapter
    {
    JTextField ta;
    Listener(JTextField ta)
    {
    this.ta=ta;
    }
    public void  keyTyped(KeyEvent e){
    ta.setText(ta.getText().toUpperCase());
    }
    }
      

  7.   

    向sysmaster学习如果换成keyReleased方法会更接近你要的效果
      

  8.   

    有个简单问题想问一下。
    sysmaster(为什么我还不懂)的解答中,为什么在Listener这个类里面的ta的文本改变了,会影响Test类里面的ta中的文本的呢 ? 
    他们不是应该是两个不同的对象吗?