博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java编程思想》读书笔记(5)
阅读量:5992 次
发布时间:2019-06-20

本文共 1496 字,大约阅读时间需要 4 分钟。

今天和vandalor讨论到多态的思想和好处,自己对多态也有了进一步的认识。再来想了想前面一篇笔记中的代码,想到如果用户能够在不知道到底是applet还是窗体的情况能够跑起来的话,那应该更符合封装的思想了。所得代码如下:
        //Console.java
import java.awt.*;
import javax.swing.*;
public class Console 
{
    public static String title(Object obj)
    {
        String str = "";
        str = obj.getClass().toString();
        if(str.indexOf("class")!=-1)
        {
            str = str.substring(6);
        }
        return str;
    }
    public static void run(JFrame frame,int width,int height)
    {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle(title(frame));
        frame.setSize(width,height);
        frame.setVisible(true);
    }
    
    public static void run(JApplet applet,int width,int height)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle(title(applet));
        frame.setSize(width,height);
        frame.getContentPane().add(applet);
        applet.init();
        applet.start();
        frame.setVisible(true);
    }
    
    public static void run(JPanel panel,int width,int height)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle(title(panel));
        frame.setSize(width,height);
        frame.getContentPane().add(panel);
        frame.setVisible(true);
    }
}
        
//Test.java
import javax.swing.*;
public class Test extends JApplet
{
    /**
     * @param args
     */
    public void init()
    {
        JLabel lb1 = new JLabel("Hello,World");
        this.getContentPane().add(lb1);
    }
    public static void main(String[] args)
    {
        Test t1 = new Test();
        Console.run(t1,300,300);
    }
}
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/06/01/414397.html,如需转载请自行联系原作者
你可能感兴趣的文章
“只能通过Chrome网上应用商店安装该程序”解决方法
查看>>
Android 开发踩过的坑以及注意事项
查看>>
怎么查看lib里的jar包的类信息
查看>>
CentOS7下LNMP环境搭建Discuz论坛
查看>>
Sybase SQL Anywhere 9 数据库修复成功
查看>>
router ospf命令
查看>>
Flink 原理与实现:Table & SQL API
查看>>
android核心基础(1)_什么是3G
查看>>
基于Jenkins+Docker的自动化代码发布流程
查看>>
代理模式
查看>>
提示信息
查看>>
ExtJS的使用方法汇总7——数据存储与传输
查看>>
基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践
查看>>
cisco 3560 enable密码恢复
查看>>
我的友情链接
查看>>
NGINX
查看>>
mysql 密码的修改
查看>>
EIGRP上负载均衡了,数据包是如何分配的
查看>>
json序列化工具
查看>>
spring cloud eureka的配置
查看>>