且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

JPanel,JFrame,JComponent和JApplet之间的区别

更新时间:2023-12-05 19:34:28

这些类是常见的扩展点用于Java UI设计。首先,要意识到他们并不一定要直接相互关联,所以试图找到他们之间的关系可能会适得其反。

Those classes are common extension points for Java UI designs. First off, realize that they don't necessarily have much to do with each other directly, so trying to find a relationship between them might be counterproductive.

JApplet - 一个基类,让您编写将在浏览器上下文中运行的代码,例如交互式网页。这很酷,除了它带来的限制,这是它在现实世界中表现出色的价格。通常,当您想在网页中拥有自己的UI时,可以使用JApplet。我一直想知道为什么人们不利用applet来存储会话状态,因此不需要数据库或cookie。

JApplet - A base class that let's you write code that will run within the context of a browser, like for an interactive web page. This is cool and all but it brings limitations which is the price for it playing nice in the real world. Normally JApplet is used when you want to have your own UI in a web page. I've always wondered why people don't take advantage of applets to store state for a session so no database or cookies are needed.

JComponent - 打算与Swing交互的对象的基类。

JComponent - A base class for objects which intend to interact with Swing.

JFrame - 用于表示窗口应具有的内容。这包括边框(可调整大小的y / n?),标题栏(应用程序名称或其他消息),控件(允许最小化/最大化?),以及各种系统事件的事件处理程序,如关闭窗口(允许应用程序退出?)。

JFrame - Used to represent the stuff a window should have. This includes borders (resizeable y/n?), titlebar (App name or other message), controls (minimize/maximize allowed?), and event handlers for various system events like 'window close' (permit app to exit yet?).

JPanel - 用于将其他元素聚集在一起的通用类。这对于使用可视布局或其中一个提供的布局管理器来说更为重要,例如: gridbaglayout等。例如,您有一个比您保留的区域大的文本框。将文本框放在滚动窗格中,并将该窗格放入JPanel。然后,当您放置JPanel时,它在布局方面将更易于管理。

JPanel - Generic class used to gather other elements together. This is more important with working with the visual layout or one of the provided layout managers e.g. gridbaglayout, etc. For example, you have a textbox that is bigger then the area you have reserved. Put the textbox in a scrolling pane and put that pane into a JPanel. Then when you place the JPanel, it will be more manageable in terms of layout.