画布上写字java代码,画布上写字java代码是什么
java中上怎样使字一个一个的写在面板上去
用线程一个一个地写上去
创新互联是一家专注于成都做网站、成都网站制作、成都外贸网站建设与策划设计,稷山网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:稷山等地区。稷山做网站价格咨询:13518219792
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class TestFrame extends JFrame {
private JLabel jl;
public TestFrame() {
setName("一个一个字地显示");
setBounds(200,200,300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jl = new JLabel();
jl.setHorizontalTextPosition((int) TOP_ALIGNMENT);
jl.setBackground(Color.red);
jl.setSize(300, 300);
jl.setVerticalAlignment(SwingConstants.TOP);
add(jl);
setVisible(true);
}
private void setLabelText(String str){
jl.setText(str);
}
private class WriterWord implements Runnable{
private String words;
public WriterWord(String words) {
this.words = words;
}
@Override
public void run() {
try {
for (int i = 0; i words.length(); i++) {
setLabelText(words.substring(0,i));
Thread.sleep(1000);//隔一秒设置label文本
}
} catch (Exception e) {
}
}
}
public static void main(String[] args) {
TestFrame tf = new TestFrame();
WriterWord ww = tf.new WriterWord("一个一个地打字");
Thread t = new Thread(ww);
t.start();//运行线程
}
}
如何实现java画图程序,并可在已画的图上添加文字等,求大神T-T
只提指导,没有源码。
在 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 知道它的位置是在哪个图形的内部,之后的移动就修改这个图形的位置。
如何利用java在图片上添加文字
// 读取模板图片内容
BufferedImage image = ImageIO.read(new FileInputStream("c:\\test.jpg"));
Graphics2D g = image.createGraphics();// 得到图形上下文
g.setColor(Color.BLACK); // 设置画笔颜色
// 设置字体
g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, 15));// 写入签名
// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。
g.drawString("这是新加入的文字", 43, image.getHeight() - 10);
g.dispose();
FileOutputStream out = new FileOutputStream("c:\\test1.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
希望我的回答能帮助你 谢谢 呵呵 答案补充 肯定了 在一张纸上写字 肯定会自动换行的 否则写外面?逻辑都通不过去~ 答案补充 把你的意思说出了 是不是随便的写字然后就提交 就把字写在了图片上还是?多少字 有没有约束? 答案补充 g.drawString("这是新加入的文字", 43, image.getHeight() - 10);
在这个做处理 你规定了字体的大小 那么获取字符的长度*大小 一次判断不要大于宽度 否则image.getHeight() - 10++ 你试试 应该可以的 我这里没有Eclipse 答案补充 public class mains {
/**
* @param args
*/
private static int fontsize = 15;
static String jj(String str)
{
String sContent = str;
sContent=sContent.replaceAll(" "," ");
sContent=sContent.replaceAll("br/","/");
sContent=sContent.replaceAll("br","/");
return sContent;
} 答案补充 static void hh(String str)
{
BufferedImage image;
try {
image = ImageIO.read(new FileInputStream("E:\\dian zi za zhi/789.jpg"));
Graphics2D g = image.createGraphics();// 得到图形上下文
g.setColor(Color.BLACK); // 设置画笔颜色
// 设置字体
g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, fontsize));// 写入签名
// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。
String text = jj(str); 答案补充 String [] text1 = text.split("/");
int h = image.getHeight();
int w = image.getWidth();
for(int i=0;itext1.length;i++)
{
g.drawString(text1[i],0,fontsize+i*fontsize);
}
g.dispose();
FileOutputStream out = new FileOutputStream("E:\\dian zi za zhi/789.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close(); 答案补充 public static void main(String[] args) {
// TODO Auto-generated method stub
hh("sdakljsdhwwbr/asdasdbr/a");
}
}
试试 可以换行 答案补充 关于 图片的尺寸以及字体是否超出 你自己试着解决下 不要过于依赖问
java 从JTextField输入文字,按Enter键盘 在画布里面显示 JTextField输入文字多个也可以
在JTextField添加键盘事件,判断按键是否是Enter键,如果是,就将JTextField的值取出来,显示在画布里
文章名称:画布上写字java代码,画布上写字java代码是什么
文章网址:http://scjbc.cn/article/dseshsh.html