标题:[求助]一个图形界面的问题
只看楼主
turing514
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-7-24
 问题点数:0 回复次数:4 
[求助]一个图形界面的问题

package map;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class test extends JFrame {
public test() {
super("Map");
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MapPane map1=new MapPane();
Container content =(JPanel)getContentPane();
content.add(map1);
}

public static void main(String[] args) {
test Frame = new test();
Frame.show();
}
}
class MapPane extends JFrame{
public void paintComponent(Graphics comp){
Graphics comp2D =(Graphics2D)comp;
comp2D.drawString("haiwang",100,100);
}
}
编译是老出现错误(本程序是21天学通java的现成的程序):
java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:616)
at java.awt.Container.add(Container.java:307)
at map.test.<init>(test.java:24)
at map.test.main(test.java:28)
Exception in thread "main"
各个大虾给说说为什么?

搜索更多相关主题的帖子: Copyright version package public import 
2006-07-27 14:05
LVTIAN
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2006-6-26
得分:0 
把组件加入到JFrame中啊,然后再设置大小

如果我们生存的冰冷的世界依然难改变,至少我还拥有你化解冰雪的容颜。
2006-07-27 14:52
turing514
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-7-24
得分:0 

这位兄弟能否说清楚点,我要是把把getContentPane(map)改为getContentPane(new JButton())就没有错误,我觉得好像不是哪方面的问题吧

2006-07-27 15:30
lt2046
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-7-21
得分:0 

我没事过JFrame只见的嵌套,因为是重量级组件,我建议把class MapPane extends JFrame
改为extends JDialog 试试


2006-07-27 16:05
witchery
Rank: 1
来 自:西安
等 级:新手上路
帖 子:205
专家分:0
注 册:2005-8-6
得分:0 

java.lang.IllegalArgumentException: adding a window to a container
这条提示 错误的参数传递 , 添加了一个窗口给容器(adding a window to a container)
也就是这句:content.add(map1);
...
class MapPane extends JFrame
把JFrame 改成JButton 就哦棵了。
容器应该包含在窗口中, 而不是容器内包含窗口.

下面是我修改后的代码
package map;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
class test extends JFrame {
public test() {
super("Map");
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MapPane map1=new MapPane();
Container content =(JPanel)getContentPane();
content.add(map1);
}

public static void main(String[] args) {
test Frame = new test();
Frame.show();
}
}
class MapPane extends JButton{ // 将JFrame 改成 JButton
public void paintComponent(Graphics comp){
Graphics comp2D =(Graphics2D)comp;
comp2D.drawString("haiwang",100,100);
}
}

/**
* 我添加的测试类,测试 test
* @version 1.0, 2006-07-27
* @author witchery
*/
class test2 {

public static void main(String[] args) {

test s = new test();
}
}


2006-07-27 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-80572-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.168658 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved