我在一个协同编辑系统,
白板上用JTextArea来实现文本的编辑,
但同时还得实现画图,
比如画直线,椭圆,矩形什么的,
还得可以改变这些图形得大小和位置,
用Graphics2D 来画这些图形,
那么jpanel和jTextarea要怎么个放法才能实现我要得功能
最后就象word一样,可以画图也可以写问题。
就象是在jTextArea上画一样。
白板上用JTextArea来实现文本的编辑,
但同时还得实现画图,
比如画直线,椭圆,矩形什么的,
还得可以改变这些图形得大小和位置,
用Graphics2D 来画这些图形,
那么jpanel和jTextarea要怎么个放法才能实现我要得功能
最后就象word一样,可以画图也可以写问题。
就象是在jTextArea上画一样。
其次,即使用JTextPane,也不能做到既能编辑文字,又能画图。你需要另外作一个部件,专门画图,并把画好的图显示到JTextPane里。如果内容少的话,用Graphics2D也能做到。但是很麻烦,你需要自己画光标,记住每个文本很图形的位置及内容。倒是也有简单办法(也不简单)。在一个JPanel中,使用JTextArea或JTextField编辑显示文字,使用JLabel画图。
把JPanel的布局管理器设置为null。选择要放置的部件,JTextField或JLabel,在点击鼠标时创建并放置到JPanel,使用鼠标还可以拖动这些子部件。
然后,你就可以在JTextField上写字,在JLabel上画图(当然,是继承JLabel,画图代码自己写)。
每个子部件能记忆自己的内容,JPanel记忆每个部件的类型和位置,以便存档。计算机性能好,内容不多的情况下,这应该是个最好的办法。
如果你是初学者的话,建议放弃。
你怎么编辑JLabel里的文字?自己写代码?那为什么不直接用JTextField或JTextArea呢?
UnAgain的方法不是把图画在jlabel上吗?
能不能加我下,谢谢
886922
只要把jTextArea设置为透明的,这样画在jpanel上的图案就可以看到了,
通过监听鼠标的动作来改变图案的大小就可以了
我刚才试了下画在jlabel上,
但是由于jTextArea没设为透明,
所以还是看不到效果谢谢UnAgain,也谢谢diannaomingong