如果你是要在图片上画一个字符串的话,你可以先用“标签”为这个标签添加背景,之后再加文字。这种做法是可以的。加的文字你可以是任意字符串。
只提指导,没有源码。在 Java 中要自定义组件,一般是覆盖掉 protected void paintComponent(Graphics g)方法就可以了,对于你这个类似画笔的程序,首先,整个画布是一个自定义的继承自像 JPanel 一样的东西,不过我们需要覆盖它的 paintComponent 方法,因为:一、我们需要在当鼠标拖放一个东西时我们移动这个选中的图形时记住它的位置;二、设定 label 时需要保存它的 Label。三、知道图形的形状。
,然后在 paintComponent 时依次画出各个图形来。
要绘图:
1、直线,g.drawLine(x,y,x2,y2)// 参数分别是起止点坐标。
2、矩形,g.fillRect(x, y, w, h)// 参数分别是左上角坐标和宽及高。
3、椭圆,g.fillOval(x, y, w, h)// 参数分别是椭圆形的外切矩形的左上角坐标及宽和高,当w 和 h 相等时是个圆。
准备绘图前 g.setColor() 设置前景色;先把整个画布用 g.fillRect() 涂成白色,再分别画各个图形,最后绘制 Label 应该在画图形之后再做。
移动图形,是给 画布组件 addMouseMotionListener 来监听事件的,在拖动时先通过 mouseDragged 事件的 MouseEvent.point 知道它的位置是在哪个图形的内部,之后的移动就修改这个图形的位置。
我在一个项目中需要使用C:\WINDOWS\system \drivers\etc这个目录下的hosts文件 并且在该文件的最后加上一个这样的字符串: rsgl_dbserve 由于对Java的文件 *** 作不是很熟练 花了半天的功夫才找到了 具体的实现办法如下:
import java io FileOutputStreamimport java io IOExceptionimport java io OutputStreamWriter
public class FileWriterTest {
public static void main(String[] args) { FileOutputStream stream OutputStreamWriter writer try {
//主要是使用了FileOutputStream的构造函数 FileOutputStream (File file boolean append) //这里参数append为true表示可以添加 详细使用参考JDK帮助文档资料 stream = new FileOutputStream( C:\\WINDOWS\\system \\drivers\\etc\\hosts true)writer = new OutputStreamWriter(stream) writer write( rsgl_dbserve ) writer close() stream close() } catch (IOException e) { e printStackTrace() } }
}
以上代码在eclipse上调试成功!
为了增加代码的重用性 可以编写一个方法如下:
lishixinzhi/Article/program/Java/hx/201311/26427
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)