免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2357 | 回复: 3
打印 上一主题 下一主题

一个关于类和对象的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-18 21:23 |只看该作者 |倒序浏览
  1. import javax.swing.*;
  2. import java.awt.*;

  3. public class DrawMessage extends JPanel {
  4.         public static void main(String[] args) {
  5.                 JFrame frame = new JFrame("DrawMessage");
  6.                 frame.getContentPane().add(new DrawMessage());
  7.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  8.                 frame.setSize(300, 200);
  9.                 frame.setVisible(true);
  10.         }
  11.        
  12.         protected void paintComponent(Graphics g) {
  13.                 super.paintComponent(g);
  14.                 g.drawString("Welcome to Java", 40, 40);
  15.         }
  16. }
复制代码
frame.getContentPane().add(new DrawMessage());
这句我不能理解,这里的new DrawMessage(),怎么可以在类中创建自身的对象呢?!

论坛徽章:
0
2 [报告]
发表于 2010-07-19 15:54 |只看该作者
因为这个类DrawMessage是个JPanel,JFrame可以add JPanel。
还有,其实可以把函数public static void main(String[] args) 单独放到一个类里,比如:TopMain,这样就好理解了

论坛徽章:
0
3 [报告]
发表于 2010-07-19 16:49 |只看该作者
因为这个类DrawMessage是个JPanel,JFrame可以add JPanel。
还有,其实可以把函数public static void main ...
roger_3301 发表于 2010-07-19 15:54



    意思就是如果这个类不是JPanel就不能这样用了?!

论坛徽章:
0
4 [报告]
发表于 2010-07-21 10:24 |只看该作者
1. frame.getContentPane()是用来初始化一个容器的
2. frame.getContentPane().add()中的.add()是在这个容器中添加一个实体,这个实体可以是SWING里,比如这里的JPanel;也可以是AWT里的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP