java 在已有的图片上画图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 在已有的图片上画图相关的知识,希望对你有一定的参考价值。
参考技术A //读取图片文件,得到BufferedImage对象BufferedImage bimg=ImageIO.read(new FileInputStream("图片文件路径"));
//得到Graphics2D 对象
Graphics2D g2d=(Graphics2D)bimg.getGraphics();
//设置颜色和画笔粗细
g2d.setColor(Color.RED);
g2d.setStroke(new BasicStroke(3));
//绘制图案或文字
g2d.drawString("文本", x坐标, y坐标);
//保存新图片
ImageIO.write(bimg, "JPG",new FileOutputStream("文件路径"));追问
图片不保存,直接放在Jpanel里显示怎么写
追答将新绘制的BufferedImage对象放入JLabel对象中,将JLabel对象放入JPanel中即可。
JLabel lbl=new JLabel(new ImageIcon(bimg));
如果是用鼠标画图的呢,怎么写啊
追答给JPanel追加鼠标移动事件监听,记录鼠标绘制轨迹,然后画在图片上。
本回答被提问者采纳如何在已有的SQL查询的语句中,再添加一个查询条件?
两个表,一个表是TBL_TicketBasic,里面存储了票号、票据时间、票据状态等信息;另一个表是TBL_TicketType,里面只有票据类型,票据类型分为客票和货票两种
现在已有一个SQL查询语句实现了查询客票超期6个月,货票超期3个月的所有的票据信息(超期就是从票据时间开始)语句如下:
select * from
(select a.*, b.TicketTypeKind from TBL_TicketBasic as a
left join
TBL_TicketType as b on a.TicketType = b.TicketTypeNo)as c
where (c.TicketTypeKind = '2' and c.InDatetime<dateadd(month,-3,getdate()))
or (c.TicketTypeKind = '1' and c.InDatetime<dateadd(month,-6,getdate()))
我要再添加一个条件,就是在以上的基础上,进一步筛选出票据状态为“未销号”的,请高手帮忙写出语句,谢谢,分数不够可追加
上面没说清楚,票据状态有很多,没有直接的“未销号”,S表示已经销号,排除S的语句怎样写?
(
select a.*, b.TicketTypeKind from TBL_TicketBasic as a
left join
TBL_TicketType as b on a.TicketType = b.TicketTypeNo
)as c
where
(
(c.TicketTypeKind = '2' and c.InDatetime<dateadd(month,-3,getdate()))
or (c.TicketTypeKind = '1' and c.InDatetime<dateadd(month,-6,getdate())
)
and c.票据状态 = ‘未销号’
)追问
可能没描述清楚,S表示已经销号。。。排除S的语句怎么写?。。。
追答是不要 已经销号 ,还是要 已经销号 的
下面假设不用 已销号的:
select * from
(
select a.*, b.TicketTypeKind from TBL_TicketBasic as a
left join
TBL_TicketType as b on a.TicketType = b.TicketTypeNo
)as c
where
(
(c.TicketTypeKind = '2' and c.InDatetime ‘S'
)
可以再嵌套一个
select *from
(
select *
from
(
select a.*, b.TicketTypeKind
from TBL_TicketBasic as a
left join TBL_TicketType as b on a.TicketType = b.TicketTypeNo
)as c
where (c.TicketTypeKind = '2' and c.InDatetime<dateadd(month,-3,getdate()))
or (c.TicketTypeKind = '1' and c.InDatetime<dateadd(month,-6,getdate()))
)d
where d.TicketStatus not like '%S%'
----再或者用inner join 关联下
select *
from
(
select a.*, b.TicketTypeKind
from TBL_TicketBasic as a
left join TBL_TicketType as b on a.TicketType = b.TicketTypeNo
)as c
inner join (select * from TBL_TicketBasic(不确定状态字段在哪个表) where TicketStatus='未销号') e on a.TicketType=e.TicketType
where (c.TicketTypeKind = '2' and c.InDatetime<dateadd(month,-3,getdate()))
or (c.TicketTypeKind = '1' and c.InDatetime<dateadd(month,-6,getdate()))追问
第二个方法查了以后有错误,第一个倒是没错误可是什么也查不到啊。。。我确定我的数据库表里有数据的,奇怪了我也想这样写的,可是就是有问题
追答我不知道你状态的哪个字段是什么 在哪个表的 ?
参考技术C select * from TBL_TicketBasicleft join TBL_TicketType
on TBL_TicketType.id=TBL_TicketBasic.id ---希望表里有对应ID
where 票据时间>6 and id=客票 and 票据状态=未销号
union
select * from TBL_TicketBasic
left join TBL_TicketType
on TBL_TicketType.id=TBL_TicketBasic.id ---希望表里有对应ID
where 票据时间<3 and id=货票and 票据状态=未销号 参考技术D 把前面的两个or条件再用括号括起来,然后后面加and 条件就行了啊 第5个回答 2013-07-24 在你的基础上加上
where 票据状态=‘未销号’
以上是关于java 在已有的图片上画图的主要内容,如果未能解决你的问题,请参考以下文章