我正在寻找Java paint
组件(java.awt.TextArea)的TextArea
方法实现。
我已经阅读了该类及其超类(java.awt.TextComponent)的源代码,但是没有找到public void paint(Graphics g)
方法实现,我认为这意味着该类将使用默认Component#paint(Graphics)
实现,没有意义。我在这里错过了什么吗?如何绘制TextArea
组件?
答案 0 :(得分:2)
TextArea是一个AWT组件,而不是Swing组件。因此,它被称为重量级组件,这意味着它实际上是由底层平台/操作系统的本机组件(即Windows / Gnome / Motif组件,取决于操作系统)实现的,称为组件的对等方。因此,绘画由平台的本机小部件完成,而不是由组件完成。
答案 1 :(得分:1)
AWT Components
是上一个千禧年的恐龙,只有back-compactible
存在且仍然存在,请/更好的是将其更改为Todays JComponents
,所有以“J”开头这里是JComponents with tutorials的列表,但对于Swing的JComponents,paintComponent(Graphics g)
代替paint(Graphics g)
方法绘画仍然存在但是对于XxxXxxUI中最深的绘画,例如MetalButtonUI,但不是绘制图像/线条/文本...而只是试图避免similar examples from year 2000和另一个非常老例如,在Java6的Swing中,自定义绘图的实现真的是错误的,
关于此论坛的有很多关于Painting Something in JComponents
编辑:如果你想画一些东西,那么寻找JLabel(通过defalut透明),2D Graphics最好JComponent
,here的例子,以及仅使用paintComponent()方法