《Java编程思想》读书笔记(5)

今天和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);

    }

}

 

posted on   Phinecos(洞庭散人)  阅读(516)  评论(1编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

统计

点击右上角即可分享
微信分享提示