JComponent有一个方法setBounds(x,y,w,h),并且Sun公司已经完全实现,我想覆盖或者重写该方法,如何实现?
由于已有的程序中生成了许多各式各样的JComponent,让每个JComponent覆盖父类的该方法显然是不可能的。
有没有如代理接口的方法实现代理JComponent的setBounds(x,y,w,h)的方法。
不管过程多复杂,只要能实现就好。谢谢。
由于已有的程序中生成了许多各式各样的JComponent,让每个JComponent覆盖父类的该方法显然是不可能的。
有没有如代理接口的方法实现代理JComponent的setBounds(x,y,w,h)的方法。
不管过程多复杂,只要能实现就好。谢谢。
API上这样写的~~
虽然从技术上讲可以在继承自 JComponent 的所有对象上设置边框,但是很多标准 Swing 组件的外观实现无法很好地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是 JPanel 或 JLabel 上设置边框时,我们建议将该组件放入 JPanel 中,并在 JPanel 上设置边框。
LZ没有打算设置边框啊,你是不是把setBounds看成setBorder了:)
没有必要重新写
编程时只考虑了在显示器分辨率为1024*768下的情况,
现在客户要求显示到分辨率更大的情况下,
结果我要么重写所有的setBounds方法,
实际上重写所有的setBounds方法已经是不可能的了,
因为我的程序中估计已经生成有10000个控件。
所以我想问一下有没有如代理接口似的实现代理方法,
或者其它的什么方法重新实现JComponent的setBounds方法
Component c=yourComponent;//不管你的组件是什么
c.setBounds(...);
static setBounds(Component c,..){
c.setBounds(...);
}
===================================================
当然有办法,我可以获得当前系统的分辨率大小,然后求出与设计时大小的比例,
原有的setBounds方法不作任何改变,程序就能适用于任何分辨率大小的系统我现在也想采用自己写一个静态方法:
static setBounds(Component c,..){
c.setBounds(...);
}
可是感觉不爽,那样的话相当于借助于第三方类,而且以后所有的组件setBounds都只能通过该方法
===================
没看明白,那所有的Java组件又得继承我写的Component,最后我不得不重写一套Swing
看来CSDN上高手都不怎么舍得帮忙呀。