欢迎来到皮皮网网首页

【骂人源码怎么写】【essage源码】【sofastack源码】windowbuilder 源码

来源:忆乐社区源码 时间:2024-12-29 13:48:58

1.请教前辈们指点DELPHI的学习。
2.JAVA将一个JFrame放入另一个JFrame
3.OSGI的书籍

windowbuilder 源码

请教前辈们指点DELPHI的学习。

       1、直接学Delphi没有问题,就像有的骂人源码怎么写人直接学VC一样。但我个人建议先学一下Delphi的essage源码母语Object Pascal(Delphi不是语言,是编程工具),因为即使你会拖拉控件弄出一个界面,但你迟早有一天还会面临基本的语法问题。网上有些书是介绍Object Pascal的,如Object Pascal 参考手册、Pascal精要等等。

       2、sofastack源码我是个Delphi业余爱好者,原来有较好的Pascal基础。第一次接触Delphi,用了很短时间大概就摸清了控件之类的modbusrtujava源码玩意。后来才发现,控件不过是初学者摆弄摆弄的玩意,真正深入VCL需要掌握Object Pascal的基本语法和理念。

       3、源码奉送至于入门书籍,可以看看台 湾 陈宽达的《Delphi深度历险》,谭浩强的《PASCAL语言程序设计》。大陆作者的书不要买,大部分是互相抄的,或者从人家BBS上摘录下来的,水平很低。这年月,狗都能出书。另外有时间可以看看Delphi自带的源码,很有好处。

JAVA将一个JFrame放入另一个JFrame

       1.先下载一个windowbuilder,安装到Eclipse中,就可以很容易做出来图形化的界面设计

       源代码如下:

       第一个Java文件Menu.java

       package output;

       import java.awt.BorderLayout;

       public class Menu extends JFrame {

        private JPanel contentPane;

        /

**

        * Launch the application.

        */

        public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

        public void run() {

        try {

        Menu frame = new Menu();

        frame.setVisible(true);

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        });

        }

        /

**

        * Create the frame.

        */

        public Menu() {

        setTitle("\u7B2C\u4E\u4E2AJFrame");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setBounds(, , , );

        contentPane = new JPanel();

        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

        contentPane.setLayout(new BorderLayout(0, 0));

        setContentPane(contentPane);

        JDesktopPane desktopPane = new JDesktopPane();

        desktopPane.setBackground(Color.ORANGE);

        contentPane.add(desktopPane, BorderLayout.CENTER);

        JButton btnframe = new JButton("\u7B2C\u4E8C\u4E2AJFrame");

        btnframe.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

        EventQueue.invokeLater(new Runnable() {

        public void run() {

        try {

        One frame = new One();

        frame.setVisible(true);

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        });

        }

        });

        btnframe.setBounds(, , , );

        desktopPane.add(btnframe);

        JButton btnjframe = new JButton("\u7B2C\u4E\u4E2AJFrame");

        btnjframe.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

        EventQueue.invokeLater(new Runnable() {

        public void run() {

        try {

        Two frame = new Two();

        frame.setVisible(true);

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        });

        }

        });

        btnjframe.setBounds(, , , );

        desktopPane.add(btnjframe);

        }

       }

       第二个文件One.java

       package output;

       import java.awt.BorderLayout;

       public class One extends JFrame {

        private JPanel contentPane;

        /

**

        * Launch the application.

        */

        public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

        public void run() {

        try {

        One frame = new One();

        frame.setVisible(true);

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        });

        }

        /

**

        * Create the frame.

        */

        public One() {

        setTitle("\u7B2C\u4E8C\u4E2AJFrame");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setBounds(, , , );

        contentPane = new JPanel();

        contentPane.setBackground(Color.GREEN);

        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

        contentPane.setLayout(new BorderLayout(0, 0));

        setContentPane(contentPane);

        }

       }

       第三个Java文件

       package output;

       import java.awt.BorderLayout;

       public class Two extends JFrame {

        private JPanel contentPane;

        /

**

        * Launch the application.

        */

        public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

        public void run() {

        try {

        Two frame = new Two();

        frame.setVisible(true);

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        });

        }

        /

**

        * Create the frame.

        */

        public Two() {

        setTitle("\u7B2C\u4E\u4E2AJFrame");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setBounds(, , , );

        contentPane = new JPanel();

        contentPane.setBackground(Color.BLUE);

        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

        contentPane.setLayout(new BorderLayout(0, 0));

        setContentPane(contentPane);

        }

       }

OSGI的书籍

       1.《深入理解OSGi:Equinox原理、应用与最佳实践》

       ä½œè€…:周志明 & 谢小明,出版时间:-2-1.

       å†…容简介:本书共章,分4个部分。第一部分(第1章):走近OSGi,主要介绍了什么是OSGi以及为什么要使用OSGi。第二部分(第2~4章):OSGi规范与原理,对最新的OSGi R5.0中的核心规范进行了全面的解读,首先讲解了OSGi模块的建立、描述、依赖关系的处理,然后讲解了Bundle的启动原理和调度管理,最后讲解了与本地及远程服务相关的内容。第三部分:OSGi服务与Equinox应用实践(第5~章),不仅详细讲解了OSGi服务纲要规范和企业级规范中最常用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还通过源码分析了Equinox关键功能的实现机制和原理。第四部分:最佳实践(第~章),总结了大量关于OSGi的最佳实践,包括从Bundle如何命名、模块划分、依赖关系处理到保持OSGi动态性、管理程序启动顺序、使用API基线管理模块版本等各方面的实践技巧,此外还介绍了Spring DM的原理以及如何在OSGi环节中进行程序测试。

       2.《Eclipse RCP与Spring OSGi:技术详解与最佳实践》

       ä½œè€…:陆阳,出版时间:-1-1.

       å†…容简介:全书共分3个部分:基础篇(第1~5章)详细介绍了与Eclipse RCP相关的一系列核心概念、Eclipse RCP开发环境的搭建,以及SWT、JFace、Forms、Nebula和WindowBuilder等Eclipse RCP开发所常用的界面编程技术;高级篇(第6~章)系统讲解了Eclipse RCP应用开发的基础知识、Eclipse RCP软件产品各个组成部分的构建方法,以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP软件,并解决软件开发过程中遇到的故障;实战篇(第~章)详细讲解了Eclipse RCP与Spring OSGi框架、Hibernate ORM框架、JPA规范、Maven工具的整合,以及它与Java的模块化设计。

       3.osgi中文社区

       ç®€ä»‹ï¼šç”±åŒ—京大学软件工程国家工程研究中心“软件协同研发支撑技术”组维护的一个模块化动态化开发技术的公益社区。初学者、进阶者和大牛都可以在这里分享技术和经验,自由的交流和学习,在贡献和收获中充实自己。为更多的学生、研究者和从业者提供更广阔的交流平台。