如何编写自己的Java Component

noho 2002-10-24 04:55:15
可以用在JBuilder的工具栏中。
各位兄弟给个入门提示,多谢先!

另外,我注意到,JButton、JLabel等Component的大小会随着自己的Caption变化,如何做到?

另外,如何做一个固定大小的Component?
...全文
74 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
远太狼 2002-11-04
  • 打赏
  • 举报
回复
构造方法调用setUI
noho 2002-10-31
  • 打赏
  • 举报
回复
刚看完JLabel和JButton的源代码,发现要是自己写一个从JComponent派生的Component,实在是太类了。要针对不同的Platform写不同的UI,不过有一点没看明白的是:Component怎么和UI联系在一起?Component::setUI的方法由谁来调用?

没有下载到《Java 2 图形设计 Volumn II》,不知道Swing的原理,谁能提供个下载地址?多谢先!
noho 2002-10-25
  • 打赏
  • 举报
回复
多谢多谢!
编写中,写完马上给分.
asdmonster 2002-10-24
  • 打赏
  • 举报
回复
楼上说得没错。

更简单的,你设计你想要的component直接继承和它相仿的系统已有的 component
然后重载楼上说的那些方法实现固定大小--不过,不见得能固定。
因为容器不见得容许你这么做,除非你也重载容器以下,但是这样属于特殊问题,没有实用性了。
远太狼 2002-10-24
  • 打赏
  • 举报
回复
首先要继承Jcomponent类

> JButton、JLabel等Component的大小会随着自己的Caption变化

那是因为他们在getPreferedSize()中计算了自己应该占多大size比较好,当然如果想要更完善的话,还要实现getMaximumSize()和getMinimunSize()

LayoutManager会调用这些方法来进行布局。

> 固定大小的Component?
这个有很多方法,比如重写setBounds(Rectanle)方法。 或者结合LayoutManager来做。
你可以参考javax.swing.Box的source


62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧