Eclipse怎么画图? 大家好,小弟刚学java,什么都不懂,弱弱的问一下在Eclipse里怎么实现画图,如两点之间的直线,曲线等等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你自己可以看API啊package com.ouyangyh.util.code;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.awt.image.BufferedImage;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;/** * 取得验证码 * @author 欧阳勇华 * */public class ValidateCode { /** * 取得验证码图像 * @param str 验证码 * @param bgColor 背景色 * @param font 字体 * @param maxAngle 最大旋转角度(度) * @return 图像 */ public static BufferedImage getImage(String str,int maxAngle,Color bgColor,Font font){ int pHeight=(int)(font.getSize()*1.25); int pWidth=(int)(pHeight*0.8); BufferedImage bi=new BufferedImage(pWidth*str.length(),pHeight,BufferedImage.TYPE_INT_BGR); Graphics2D grap=bi.createGraphics(); grap.setFont(font); grap.setColor(Color.WHITE); grap.fillRect(0, 0, bi.getWidth(), bi.getHeight()); grap.setColor(Color.RED); for(int i=0;i<str.length();i++) grap.drawImage(getImage(str.charAt(i),maxAngle,bgColor,font),new AffineTransform(1f,0f,0f,1f,i*pWidth,0), null); bi.flush(); return bi; } /** * 取得单个字符的图像 * @param c 字符 * @param bgColor 背景色 * @param font 字体 * @param maxAngle 最大旋转角度(度) * @return 图像 */ public static BufferedImage getImage(char c,int maxAngle,Color bgColor,Font font){ //设置尺寸 int pHeight=(int)(font.getSize()*1.25); int pWidth=(int)(pHeight*0.8); //实例化对象 BufferedImage bi=new BufferedImage(pWidth,pHeight,BufferedImage.TYPE_INT_BGR); Graphics2D grap=bi.createGraphics(); grap.setFont(font); grap.setColor(bgColor); //画图 grap.fillRect(0, 0, bi.getWidth(), bi.getHeight()); //旋转 grap.rotate(randomAngle(maxAngle),pWidth/2,pHeight/2); grap.setColor(randomColor(bgColor)); grap.drawString(Character.toString(c), 5,pWidth); bi.flush(); return bi; } /** * 取得随机角度 * @param maxAngle 角度 * @return */ private static double randomAngle(int maxAngle){ double angle= (Math.random()*2*maxAngle-maxAngle)/180*Math.PI; System.out.println(angle); return angle; } /** * 取得随机颜色(内置颜色) * @param bgColor 背景色(将不产生该色) * @return 随机色 */ public static Color randomColor(Color bgColor){ Color[] colors={ Color.BLACK, Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE, Color.YELLOW}; //取得颜色 return randomColor(bgColor,colors); } /** * 取得随机颜色(颜色数组中取值) * @param bgColor 背景色(将不产生该色) * @param colors 颜色数组 * @return 随机色 */ public static Color randomColor(Color bgColor,Color[] colors){ Color color=bgColor; while(color.equals(bgColor)){ color=colors[(int)(Math.random()*colors.length)]; } return color; } /** * 产生指定个数的随机数字符串 * @param count 个数 * @return 字符串 */ public static String randomNumber(int count){ char[] result=new char[count]; for (int i = 0; i < result.length; i++) { result[i]=(char)('0'+Math.random()*10); } return new String(result); } /** * 将图像写入文件 * @param image 图像 * @param fileName 文件名 */ public static void write(BufferedImage image,String fileName){ try{ BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(fileName)); JPEGImageEncoder jpg=JPEGCodec.createJPEGEncoder(out); jpg.encode(image); out.flush(); out.close(); }catch(Exception e){ } File file=new File(fileName); System.out.println(file.getAbsolutePath()); } public static void main(String[] args) throws Exception{ String code=ValidateCode.randomNumber(5); BufferedImage image=ValidateCode.getImage(code,45,Color.WHITE,new Font("宋体",Font.PLAIN,25)); write(image, "code.jpg"); }} 需要重写paintComonent方法:package 图形程序设计;import javax.swing.*;import java.awt.*;import java.awt.geom.*;class DrawFrame extends JFrame{ public DrawFrame(){ setTitle("DrawTest"); }}class DrawComponent extends JComponent{ public void paintComonent(Graphics g){ Graphics2D g2=(Graphics2D)g; double leftX=100; double topY=100; double width=200; double height=150; Rectangle2D rect=new Rectangle2D.Double(leftX,topY,width,height); g2.draw(rect); Ellipse2D ellipse=new Ellipse2D.Double(); ellipse.setFrame(rect); g2.draw(ellipse); g2.draw(new Line2D.Double(leftX,topY,leftX+width,topY+height)); double centerX=rect.getCenterX(); double centerY=rect.getCenterY(); double radius=150; Ellipse2D circle=new Ellipse2D.Double(); circle.setFrameFromCenter(centerX, centerY,centerX+radius,centerY+radius); g2.draw(circle); }} Java Api 包中有画图的工具 java.awt 那个包中! 都什么时代了, 还用 java 画图, 你瞧swing界面丑陋. 调查一下现在还有谁用 java,swing去做窗体. 请问一下,在java中用什么做界面好?我真不知道啊。 我的建议就是画图就不要考虑用JAVA了 我就不信有人会知道 addActionListener的方法体。。。。。悬赏中 算法,如何把一个字符串中所有元素的组合列出来 用Java求三角形面积 以下代码错在哪里?怎么改? 关于GUI的程序问题,希望得到大家的帮助 一个简单的问题,关于Date类 谁给个ObjectInputStream ObjectOutputStream 读写数据的例子 Java和C的接口问题 软考结束,大家来讨论以下吧。 resultset中比较大的数据的解决问题 java编写的纸牌游戏!! 做一个程序员怎样保持自己的持久竞争力? JAVA初学者必看-Java编码规范(自己个人小结,供大家参考)
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;/**
* 取得验证码
* @author 欧阳勇华
*
*/
public class ValidateCode {
/**
* 取得验证码图像
* @param str 验证码
* @param bgColor 背景色
* @param font 字体
* @param maxAngle 最大旋转角度(度)
* @return 图像
*/
public static BufferedImage getImage(String str,int maxAngle,Color bgColor,Font font){
int pHeight=(int)(font.getSize()*1.25);
int pWidth=(int)(pHeight*0.8);
BufferedImage bi=new BufferedImage(pWidth*str.length(),pHeight,BufferedImage.TYPE_INT_BGR);
Graphics2D grap=bi.createGraphics();
grap.setFont(font);
grap.setColor(Color.WHITE);
grap.fillRect(0, 0, bi.getWidth(), bi.getHeight());
grap.setColor(Color.RED);
for(int i=0;i<str.length();i++)
grap.drawImage(getImage(str.charAt(i),maxAngle,bgColor,font),new AffineTransform(1f,0f,0f,1f,i*pWidth,0), null);
bi.flush();
return bi;
}
/**
* 取得单个字符的图像
* @param c 字符
* @param bgColor 背景色
* @param font 字体
* @param maxAngle 最大旋转角度(度)
* @return 图像
*/
public static BufferedImage getImage(char c,int maxAngle,Color bgColor,Font font){
//设置尺寸
int pHeight=(int)(font.getSize()*1.25);
int pWidth=(int)(pHeight*0.8);
//实例化对象
BufferedImage bi=new BufferedImage(pWidth,pHeight,BufferedImage.TYPE_INT_BGR);
Graphics2D grap=bi.createGraphics();
grap.setFont(font);
grap.setColor(bgColor);
//画图
grap.fillRect(0, 0, bi.getWidth(), bi.getHeight());
//旋转
grap.rotate(randomAngle(maxAngle),pWidth/2,pHeight/2);
grap.setColor(randomColor(bgColor));
grap.drawString(Character.toString(c), 5,pWidth);
bi.flush();
return bi;
}
/**
* 取得随机角度
* @param maxAngle 角度
* @return
*/
private static double randomAngle(int maxAngle){
double angle= (Math.random()*2*maxAngle-maxAngle)/180*Math.PI;
System.out.println(angle);
return angle;
}
/**
* 取得随机颜色(内置颜色)
* @param bgColor 背景色(将不产生该色)
* @return 随机色
*/
public static Color randomColor(Color bgColor){
Color[] colors={
Color.BLACK,
Color.BLUE,
Color.CYAN,
Color.GRAY,
Color.GREEN,
Color.MAGENTA,
Color.ORANGE,
Color.PINK,
Color.RED,
Color.WHITE,
Color.YELLOW};
//取得颜色
return randomColor(bgColor,colors);
}
/**
* 取得随机颜色(颜色数组中取值)
* @param bgColor 背景色(将不产生该色)
* @param colors 颜色数组
* @return 随机色
*/
public static Color randomColor(Color bgColor,Color[] colors){
Color color=bgColor;
while(color.equals(bgColor)){
color=colors[(int)(Math.random()*colors.length)];
}
return color;
}
/**
* 产生指定个数的随机数字符串
* @param count 个数
* @return 字符串
*/
public static String randomNumber(int count){
char[] result=new char[count];
for (int i = 0; i < result.length; i++) {
result[i]=(char)('0'+Math.random()*10);
}
return new String(result);
}
/**
* 将图像写入文件
* @param image 图像
* @param fileName 文件名
*/
public static void write(BufferedImage image,String fileName){
try{
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(fileName));
JPEGImageEncoder jpg=JPEGCodec.createJPEGEncoder(out);
jpg.encode(image);
out.flush();
out.close();
}catch(Exception e){ }
File file=new File(fileName);
System.out.println(file.getAbsolutePath());
}
public static void main(String[] args) throws Exception{
String code=ValidateCode.randomNumber(5);
BufferedImage image=ValidateCode.getImage(code,45,Color.WHITE,new Font("宋体",Font.PLAIN,25));
write(image, "code.jpg");
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
class DrawFrame extends JFrame{
public DrawFrame(){
setTitle("DrawTest");
}
}
class DrawComponent extends JComponent{
public void paintComonent(Graphics g){
Graphics2D g2=(Graphics2D)g;
double leftX=100;
double topY=100;
double width=200;
double height=150;
Rectangle2D rect=new Rectangle2D.Double(leftX,topY,width,height);
g2.draw(rect);
Ellipse2D ellipse=new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
g2.draw(new Line2D.Double(leftX,topY,leftX+width,topY+height));
double centerX=rect.getCenterX();
double centerY=rect.getCenterY();
double radius=150;
Ellipse2D circle=new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY,centerX+radius,centerY+radius);
g2.draw(circle);
}
}