要实现在文本框里实现输入小写,输出大写
import java.awt.*;
import java.awt.Event;
import java.awt.TextArea;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class Key implements KeyListener {
public static void main(String[] args)
{
JFrame f=new JFrame("example");
TextArea t=new TextArea();
t.addKeyListener(new Key());
f.add(t);
f.setVisible(true);
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
TextArea ta=(TextArea)arg0.getSource();
String s=ta.getText();
String b=s.toUpperCase();
ta.setText("" );
ta.append(b);
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
报错信息:
java.lang.Error: Do not use javax.swing.JFrame.add() use javax.swing.JFrame.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(Unknown Source)
at javax.swing.JFrame.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Key.main(Key.java:18)
Exception in thread "main"
----------------解决方案--------------------------------------------------------
我这运行的是好好的啊
在输入的时候是小写 当在写第2个小写字母的时候 第1个字母就会变为大写 是这样的吧
----------------解决方案--------------------------------------------------------
我希望的是那样的没错
那为什么我机子上运行出错呢。。。运行别的程序没问题啊
----------------解决方案--------------------------------------------------------
import java.awt.*;
import java.awt.Event;
import java.awt.TextArea;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class Key implements KeyListener
{
public static void main(String[] args)
{
JFrame f=new JFrame("example");
TextArea t=new TextArea();
t.addKeyListener(new Key());
f.add(t);
f.setSize(800,600);
f.setVisible(true);
}
public void keyPressed(KeyEvent arg0)
{
// TODO Auto-generated method stub
TextArea ta=(TextArea)arg0.getSource();
String s=ta.getText();
String b=s.toUpperCase();
ta.setText("" );
ta.append(b);
}
public void keyReleased(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
}
把我的复制去试试
----------------解决方案--------------------------------------------------------
最好是监听用户输入
注册一个keyListener
----------------解决方案--------------------------------------------------------
还是不行。。。。看不懂报错的意思
大家再给点意见
----------------解决方案--------------------------------------------------------
有报错吗>?
----------------解决方案--------------------------------------------------------
加个容器
f.getContentPane().add(t);
再试试
----------------解决方案--------------------------------------------------------
容器是肯定要加的,刚才我都没有看到你没有加容器
在JFrame中,是不能直接把内容放到它上面去的
你必须得到JFrame的内容窗格,然后把东西放到内容窗格上
这和Frame是不一样的
----------------解决方案--------------------------------------------------------
这下行了 ,谢谢二位。感谢千里的说明~
----------------解决方案--------------------------------------------------------