能稍微介绍下 JComponent 与JPanel的区别吗?我在看的是《Java核心技术》上卷,里面第七章用的是JComponent,但是后面用的是JPanel ,前面的绘图之类的怎么用JPanel完成呢?
解决方案 »
- 第一次看到的java语句,真不知道是什么意思?
- JAVA 删除目录或文件
- java 形参,实参 在内存中分配问题
- 关于immutable objects在线程应用中的句话的理解????
- AjaxRequest的问题
- 我是初学j2se的请前辈指指路线
- 在Java里,输入一个整数怎么写语句?
- java synchronized问题
- 我进入IT业1年,我所在的公司只有一个美工和我两个技术人员,虽然什么项目都要我做,但是感觉是在自学,目光短浅,请问我是继续在这个公
- JBUILDER6.0在WIN2000 PROFESSION下安装,但是JAVA文件没有和JBUILDER关联这是什么原因?
- java问题
- 金蝶eas
我们老师说,Applet现在没啥利用价值了……因为有了JavaScript等……
我直接跳过了……《疯狂Java讲义(第二版)》直接就没提到Applet
可由程序员指定,或者由用户在运行时选择(可选)的“可插入外观”(L&F)。每个组件的外观都由 UI 委托 提供,UI 委托是一个继承自 ComponentUI 的对象。有关更多信息,请参阅 The Java Tutorial 中的 How to Set the Look and Feel。
全面的键击处理。有关更多信息,请参阅 The Swing Connection 中的文档 Keyboard Bindings in Swing。
对工具提示的支持:光标停留在组件时所弹出的简短描述。有关更多信息,请参阅 The Java Tutorial 中的 How to Use Tool Tips。
可访问性支持。JComponent 包含 Accessible 接口中的所有方法,但是它实际上不实现该接口。由扩展 JComponent 的每个类负责实现该接口。
对特定于组件属性的支持。通过 putClientProperty(java.lang.Object, java.lang.Object) 和 getClientProperty(java.lang.Object) 方法,可以将“名称-对象”对与继承自 JComponent 的任意对象进行关联。
用于绘制的基础设施,包括双缓冲和对边框的支持。有关更多信息,请参阅 The Java Tutorial 中的 Painting 和 How to Use Borders 章节。
有关这些主题的更多信息,请参阅 Swing 包描述和 The Java Tutorial 中的 The JComponent Class 一节。
JComponent 及其子类记录了某些属性的默认值。例如,JTable 记录的默认行高为 16。每个具有 ComponentUI 的 JComponent 子类都将创建该 ComponentUI 作为其构造方法的一部分。为了提供特定的外观,每个 ComponentUI 都可以在创建它的 JComponent 上设置各种属性。例如,自定义的外观可能要求 JTable 的行高为 24。而所记录的默认值是安装 ComponentUI 前的属性值。如果需要为特定的属性使用具体值,则应该显式地设置它。 public class JPanelextends JComponentimplements AccessibleJPanel 是一般轻量级容器。有关 JPanel 的示例和面向任务的文档,请参阅 The Java Tutorial 的 How to Use Panels 一节。
JPanel 对应的UI代理是PanelUI,对于不同 L & F, 背景颜色会有差异等.
而JComponent是抽象类,没法实例化,所以也不需要UI代理
2 - JPanel 默认为 opaque, JComponent 则默认为 not opaque
3 - JPanel 默认的 LayoutManager 为 FlowLayout, JComponent 默认的 LayoutManager 为 null总结:没什么太大的区别。