哪里有错啊,题目要求是在文本域(tf)输入并按下回车键以后.将输入的内容附加到文本区(ta)
import java.awt.*;
import java.awt.event.*;class MyFrame extends Frame implements ActionListener
{
TextField tf;
TextArea ta;
MyFrame()
{
TextField tf = new TextField(20);
TextArea ta = new TextArea();
add(tf,BorderLayout.NORTH);
add(ta); setTitle("响应事件");
setSize(300,400);
tf.addActionListener(this);
addWindowListener(new Mywindow());
} public void actionPerformed(ActionEvent e)
{
String s=tf.getText();
ta.setText(s);
}
private class Mywindow extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
System.exit(0);
}
}
}public class Test3
{
public static void main(String[] args) {
MyFrame s1 = new MyFrame();
s1.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;class MyFrame extends Frame implements ActionListener
{
TextField tf;
TextArea ta;
MyFrame()
{
TextField tf = new TextField(20);
TextArea ta = new TextArea();
add(tf,BorderLayout.NORTH);
add(ta); setTitle("响应事件");
setSize(300,400);
tf.addActionListener(this);
addWindowListener(new Mywindow());
} public void actionPerformed(ActionEvent e)
{
String s=tf.getText();
ta.setText(s);
}
private class Mywindow extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
System.exit(0);
}
}
}public class Test3
{
public static void main(String[] args) {
MyFrame s1 = new MyFrame();
s1.setVisible(true);
}
}
解决方案 »
- 作用域和可见性的问题,求解释!!
- 如何停止javax.swing.Timer
- 新人求教:单机项目转C/S的疑惑
- 请大家帮忙一下,装了jdk了,还要装其他软件才可以开发程序吗
- 特请各位哥哥姐姐求救!小妹不是学JAVA但由于某种的事情需要,小妹想在这里请教一些很基础的数据库连接问题!谢谢!
- 请高手赐教!
- 高分求解!关于setxormode()的问题
- 一个EJB的简单问题,J2EE版人太少了,来这里问。请大家帮帮我
- 刚学java,碰到一问题,请 有空进来看看
- 怎样用java语言读取文本文件信息?(高分在线等!!!)
- 中文问题,本来不应发到这儿,请斑竹暂时保留!!!
- Java中如何判断一个字符是否是回车键?
import java.awt.event.*;public class text8 extends Frame implements ActionListener
{
TextField f = new TextField(8);
TextArea a = new TextArea(8,8);
Panel p = new Panel();
boolean w;
public text8()
{
w = false;
add(p);
p.add(f);
p.add(a);
f.addActionListener(this);
this.addWindowListener(new test());
}
public void actionPerformed(ActionEvent e)
{
a.setText(f.getText());
}
public class test extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
if(w)
dispose();
else
System.exit(0);
}
}
public static void main(String args[])
{
text8 t = new text8();
t.setSize(300,200);
t.show();
}
}
import java.awt.event.*;class MyFrame extends Frame implements ActionListener
{
TextField tf = new TextField(20);
TextArea ta = new TextArea();
MyFrame()
{
// TextField tf = new TextField(20);
// TextArea ta = new TextArea();
add(tf,BorderLayout.NORTH);
add(ta); setTitle("响应事件");
setSize(300,400);
tf.addActionListener(this);
addWindowListener(new Mywindow());
}
public void actionPerformed(ActionEvent e)
{
String s=tf.getText();
ta.setText(s);
}
private class Mywindow extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
System.exit(0);
}
}
}public class Test3
{
public static void main(String[] args) {
MyFrame s1 = new MyFrame();
s1.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;class MyFrame extends Frame implements ActionListener
{
TextField tf;//这是你开始声名的两个对像
TextArea ta;
MyFrame()
{
TextField tf = new TextField(20);//这是给对像分配空间
TextArea ta = new TextArea();
add(tf,BorderLayout.NORTH);
add(ta); setTitle("响应事件");
setSize(300,400);
tf.addActionListener(this);
addWindowListener(new Mywindow());
} public void actionPerformed(ActionEvent e)
{
String s=tf.getText();//----->tf.getText()为null 原因在上面
ta.setText(s);
}
private class Mywindow extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
System.exit(0);
}
}
}public class Test3
{
public static void main(String[] args) {
MyFrame s1 = new MyFrame();
s1.setVisible(true);
}
}
TextField tf;
TextArea ta;
你先这样写了,下面又
TextField tf = new TextField(20);//这是给对像分配空间
TextArea ta = new TextArea();
这就等于从新定义了两个对像tf和ta,与你开始定义的那两个没任何关系,上面两个对像还是NULLTextField tf = new TextField(20);//这是给对像分配空间
TextArea ta = new TextArea();
而你所填入的值保存在TextField tf = new TextField(20);这里了,
你最后用的又是最开始定义的
TextField tf;
TextArea ta;
所以会报空指针错误
改正:
TextField tf = new TextField(20);
TextArea ta = new TextArea();
把前面的类型去掉就OK了
就是这个
tf = new TextField(20);
ta = new TextArea();不知道楼主看明白没有!!!
java.lang.NullPointerException
at com.leeyufeng.MyFrame.actionPerformed(Test.java:26)
at java.awt.TextField.processActionEvent(TextField.java:573)
at java.awt.TextField.processEvent(TextField.java:541)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Java2D Direct3D usage disabled by J2D_D3D env以下是修改的内容:
import java.awt.*;
import java.awt.event.*;class MyFrame extends Frame implements ActionListener
{
TextField tf = new TextField(20);
TextArea ta = new TextArea();
MyFrame()
{
add(tf,BorderLayout.NORTH);
add(ta); setTitle("ACTION");
setSize(300,400);
tf.addActionListener(this);
addWindowListener(new Mywindow());
}
public void actionPerformed(ActionEvent e)
{
String s=tf.getText();
ta.setText(s);
}
private class Mywindow extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
System.exit(0);
}
}
}public class Test
{
public static void main(String[] args) {
MyFrame s1 = new MyFrame();
s1.setVisible(true);
}
}
TextField tf;
TextArea ta;
然后又
TextField tf = new TextField(20);
TextArea ta = new TextArea();
执行到这里的时候的tf,ta将覆盖外层的全局变量,tf,ta只是在构造方法内才有值,在构造函数外的全局变量tf,ta的值还是null,所以在执行到actionPerformed(e)时会抛出nullException;
你可以采用这两种方式:
1。在定义全局变量的同时初始化;2。在构造方法里不要在定义变量了(去掉构造函数中tf,ta前的TextField,和TextArea),而是直接引用定义好的全局变量。