各位高手们,请帮帮我,谢谢!!!!

xueguoqing 2003-11-02 11:29:39
各位大侠们:我是个新手才学java两天,遇到一个问题想请教,有个程序编译能通过,但执行的时候提示如下:
Exception in thread "main" java.lang.IllegalArgumentException: cannot add to lay
out: unknown constraint: BorderLayout.NORTH
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:437)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:399)
at java.awt.Container.addImpl(Container.java:664)
at java.awt.Container.add(Container.java:518)
at TwoListen.go(Xue.java:16)
at TwoListen.main(Xue.java:10)
Press any key to continue...
请问是什么意思,为什么会出现这种情况,是哪个地方逻辑出错了吗?
程序如下:
import java.awt.*;
import java.awt.event.*;

class TwoListen implements MouseMotionListener, MouseListener {
private Frame f;
private TextField tf;

public static void main(String args[]) {
TwoListen two = new TwoListen();
two.go();
}


public void go() {
f = new Frame("Two listeners example");
f.add (new Label ("Click and drag the mouse"), "BorderLayout.NORTH");
tf = new TextField (30);
f.add (tf, "BorderLayout.SOUTH");

f.addMouseMotionListener(this);
f.addMouseListener (this);
f.setSize(300, 200);
f.setVisible(true);
}

// These are MouseMotionListener events
public void mouseDragged (MouseEvent e) {
String s = "Mouse dragging: X = " + e.getX() + " Y = " + e.getY();
tf.setText (s);
}

public void mouseMoved (MouseEvent e) {
}

// These are MouseListener events
public void mouseClicked (MouseEvent e) {
}

public void mouseEntered (MouseEvent e) {
String s = "The mouse entered";
tf.setText (s);
}

public void mouseExited (MouseEvent e) {
String s = "The mouse has left the building";
tf.setText (s);
}

public void mousePressed (MouseEvent e) {
}

public void mouseReleased (MouseEvent e) {
}
}
注:我的程序是在jcreator中运行并编译的java环境是sdk1.4.1
...全文
26 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchuan 2003-11-03
  • 打赏
  • 举报
回复
逗号是不是输成中文模式下的了?
xueguoqing 2003-11-02
  • 打赏
  • 举报
回复
去掉双引号后编译也不能通过了,他提示没有双引号的地方出错了,提示为--------------------Configuration: xue - j2sdk <Default>--------------------
d:\JCreator Pro\MyProjects\xue\Xue.java:16: illegal character: \65292
f.add (new Label ("Click and drag the mouse"), BorderLayout.NORTH);
^
1 error

Process completed.

kinzey34 2003-11-02
  • 打赏
  • 举报
回复
是多了双引号的原因,去掉后可以运行:

import java.awt.*;
import java.awt.event.*;

class TwoListen implements MouseMotionListener, MouseListener {
private Frame f;
private TextField tf;

public static void main(String args[]) {
TwoListen two = new TwoListen();
two.go();
}

public void go() {
f = new Frame("Two listeners example");
//去掉引号后
f.add (new Label("Click and drag the mouse"),BorderLayout.NORTH);
tf = new TextField (30);
//去掉引号后
f.add (tf,BorderLayout.SOUTH);

f.addMouseMotionListener(this);
f.addMouseListener (this);
f.setSize(300, 200);
f.setVisible(true);
}
// These are MouseMotionListener events
public void mouseDragged (MouseEvent e) {
String s = "Mouse dragging: X = " + e.getX() + " Y = " + e.getY();
tf.setText (s);
}
public void mouseMoved (MouseEvent e) {
}
// These are MouseListener events
public void mouseClicked (MouseEvent e) {
}
public void mouseEntered (MouseEvent e) {
String s = "The mouse entered";
tf.setText (s);
}

public void mouseExited (MouseEvent e) {
String s = "The mouse has left the building";
tf.setText (s);
}
public void mousePressed (MouseEvent e){}
public void mouseReleased (MouseEvent e){}
}
xueguoqing 2003-11-02
  • 打赏
  • 举报
回复
还是不行
liuchuan 2003-11-02
  • 打赏
  • 举报
回复
好象是这里了,提示是参数错误。

f.add (tf, "BorderLayout.SOUTH");

BorderLayout.SOUTH是个静态变量,去掉双引号再试试。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧