JFrame 和JPanel 的关系-区别(学习笔记)

在学习图形用户界面的时候,搞清楚 JFrame 和 JPanel是非常关键的

下面分别给出两个例子加以区分

JFrame 的使用:

java.awt.*javax.swing.*Frame1 {
    (String[] args) {
        JFrame f = JFrame();
        f.setSize();
        f.setVisible();
        }
}

JPanel 的使用:

java.awt.*javax.swing.*Frame2 {
    (String[] args) {
        JFrame f = JFrame();
        f.setSize();
        JLabel x = JLabel();
        f.getContentPane().add(x);
        f.setVisible();
        }
}

JFrame用来做主页面框架也可以用来做顶级窗体,要想把控件放在该界面中,必须把控件放在JPanel中,然后再把JPanel放在JFrame中,JPanel作为一个容器使用。

Jpanel是一个静态控制组件,可以用来显示一行静态信息,不能接受用户的输入。它必须放在象JFrame这样的顶级窗口上才能输出。

JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel。如果你直接在JFrame上放也可以,但是首先不规范,然后要是过于复杂的界面你准备如何处理这么多控件呢?你可以写个复杂的界面,应该就可以感受到这种区别了,JPanel只是普通页面

JPanel可以放在JFrame中,反之不行

在实际应用的过程中一般的用法为:

java.awt.*javax.swing.*Frame4a {
    (String[] args) {
        JFrame f = JFrame();
        JLabel L = JLabel();
        JPanel P = JPanel();
        P.add(L);
        f.getContentPane().add(P);
        f.setSize()f.setVisible();
        }
}
时间: 2024-10-14 00:00:40

JFrame 和JPanel 的关系-区别(学习笔记)的相关文章

javascript 函数声明和函数表达式的区别(学习笔记)

javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函数可以在函数声明之前调用,而函数表达式的函数只能在声明之后调用. 3).以函数声明的方法定义的函数并不是真正的声明,它们仅仅可以出现在全局中,或者嵌套在其他的函数中,但是它们不能出现在循环,条件或者try/catch/finally中,而 函数表达式可以在任何地方声明. 下面分别用两种方法定义函数:

《C++ Primer Plus》第5章 循环和关系表达式 学习笔记

C++提供了3种循环: for 循环. while 循环 和 do while 循环 .如果循环测试条件为 true 或非零,则循环将重复执行一组指令: 如果测试条件为 false 或 0 , 则结束循环. for 循环 和 while 循环都是入口条件循环,这意味着程序将在执行循环体中的语句之前检查测试条件.do while 循环是出口条件循环,这意味若其将在执行循环体中的语句之后检査条件.每种循环的句法都要求循环体由一条语句组成.然而, 这条语句可以是复合语句,也可以是语句块(由花括号括起的

CSS 中 px,em和rem的区别 学习笔记

简单讲,px是绝对单位,em和rem是相对单位.px大家都熟悉,这里主要讨论em和rem. 现在有以下一个段落: <p>当斧头来到树林的时候,好多树都说,至少<span>它的手柄</span>是自己人</p> 当不给它设置字体大小时,使用默认大小,也就是16px大小,效果如下: em em是指相对于父元素的大小,也就是说对于p和span而言,它的大小都是1em,这里的1em = 16px. 我们将span的大小改为2em,效果如下: span{ font-s

重定向与转发的区别学习笔记

文字说明:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向. 实现方式response.sendRedirect("/welcome.html")实现原理:302状态码和location头即可实现重定向 列如: java // 取得提交的参数 String username = request.getParameter("username"); String password = request.getParameter(&qu

C++ Primer 学习笔记33_面向对象编程(4)--虚函数与多态(一):多态、派生类重定义、虚函数的访问、 . 和-&gt;的区别、虚析构函数、object slicing与虚函数

C++ Primer学习笔记33_面向对象编程(4)--虚函数与多态(一):多态.派生类重定义.虚函数的访问. . 和->的区别.虚析构函数.object slicing与虚函数 一.多态 多态可以简单地概括为"一个接口,多种方法",前面讲过的重载就是一种简单的多态,一个函数名(调用接口)对应着几个不同的函数原型(方法). 更通俗的说,多态行是指同一个操作作用于不同的对象就会产生不同的响应.或者说,多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为. 多态行分

树莓派学习笔记——Model B Model B+ Compute Module Dev Kit的区别和联系

0 前言 最近浏览器树莓派官方发现树莓派推出了两款新Model--一款名为树莓派 model B+,一款名为树莓派 Compute Module Dev Kit.带着欣喜和恐惧查阅了相关资料,并通过淘宝和RS中国了解开发板价格.欣喜的感觉来自于树莓派的功能得到了增强,恐惧来自于树莓派的改变带来新的学习成本.经过几天的资料收集,所以整理成博文和大家分享. 1 横向比较 [共性比较] 表1 三款树莓派横向比较 区别 Model B Model B+ Compute Module Dev Kit 芯片

[原创]java WEB学习笔记84:Hibernate学习之路-- -映射 一对一关系 ,基外键的方式实现

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

APUE学习笔记:第九章 进程关系

9.1 引言 本章将更详尽地说明进程组以及POSIX.1引入的会话的概念.还将介绍登陆shell(登录时所调用的)和所有从登陆shell启动的进程之间的关系. 9.1 终端登陆 系统管理员创建通常名为/etc/ttys的文件,其中每个终端设备都有一行,每一行说明设备名传递给getty程序的参数.当系统自举时,内核创建进程ID为1的进程,依旧是init进程.init进程使系统进入多用户状态.init进程读文件/etc/ttys,对每一个允许登陆的终端设备,init调用一次fork,所生成的子进程则

[原创]java WEB学习笔记85:Hibernate学习之路-- -映射 一对一关系 ,基于主键方式实现

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------