基于Java的图片效果处理

        该程序可以实现图片的模糊处理、灰度处理、二值化处理等功能,和美颜相机比较相似。还可以为图片添加马赛克。

        一张图片的形成是由各种颜色的像素块拼在一起所呈现出来的。我们需要列出每个点的像素值,并为其填充相应的颜色。因此,对于一副图像,可以看做其宽w*高h的一个二维数组,即图像=int[w][h],在w和h位置的每个int值,就是这个点的像素值。

图像处理的本质:对代表图像二维数组中的值进行重新计算。

一、点击添加图片按钮,在画布中画出一个圆点       

 首先,我们先写一个简单的程序,在画布中画一个点。步骤如下:

                1.创建一个tuxiang类,利用extends继承JFrame类;

                2.编写JFrame中固定程序,使之呈现出一个画布;

                3.为画布添加按钮及监听器;

                4.创建监听器类,编写按下按钮后所需实现的功能的代码。

        代码及结果示例如下:

//1.0 在界面中画出一个点

package TuXiang1;

import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;

	public class tuxiang1 extends JFrame {
		public void initUI(){
			this.setSize(450,450);
			this.setTitle("图像处理");
			this.setDefaultCloseOperation(3);
			this.setVisible(true);	
			FlowLayout fl = new FlowLayout();
			this.setLayout(fl);
			//加上按钮
			JButton buDraw = new JButton("添加图片");
			this.add(buDraw);
			//加监听器
			this.setVisible(true);
			//获取画布,一定在界面可见之后
			Graphics g = this.getGraphics();
			DrawLis1 dl = new DrawLis1(g);
			buDraw.addActionListener(dl);
		}
		
public static void main(String[] args) {
	tuxiang1 lu=new tuxiang1();
	lu.initUI();
	}
}
package TuXiang1;

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

//画图按钮的监听器,点一下画个东西出来
public class DrawLis1 implements ActionListener{
	
	private Graphics g;
	
	public DrawLis1(Graphics g) {
		this.g=g;
	}

		public void actionPerformed(ActionEvent e) {
			System.out.println("dssssss");
		g.fillOval(170,160,100,100); //(横坐标,纵坐标,宽,高)
		}
}

        此程序只实现了在画布中画一个点。如果要添加图片,先在项目文件中存入一张图片,利用监听器,将图片转换成二维数组,一个点一个点的在界面上显示出来。其中用到了java.awt.Color类,可以实现一切数字和颜色之间的转换操作;

二、将图片文件载入图片缓冲区,利用二维数组,将图片画在画布上

主函数tuxiang类不变,在监听器类中实现像素值的存储以及颜色的填充。监听器程序如下:

package TuXiang1;

import javax.imageio.ImageIO;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

//画图按钮的监听器,点一下画个图像出来
public class DrawLis2 implements ActionListener{
	
	private Graphics g;
	public DrawLis2(Graphics g) {this.g=g;}
	public void actionPerformed(ActionEvent e) {
        
//改为画上一张图片
		int[][] ia = getImage();
		for(int i=0;i<ia.length;i++) { //下一个像素点的坐标
			for(int j=0;j<ia[i].length;j++) { //下一个像素点的坐标
				//取得一个int代表当前位置的像素值
				int v= ia[i][j];
			//如何将这个int值,转变成为color?色即是数
				Color color = new Color(v);

			//设上这个颜色
					g.setColor(color);
				g.fillOval(i/2+40, j/2+70, 2, 2);//改变图片显示的坐标 以及像素点的大小
			}
		}	
	}

	//载入一张图片 将一张图片,转换成二维数组,一个点一个点的在界面上画出
	public int[][] getImage(){
		java.io.File ff = new File("11.jpg");
		//将图片文件载入缓冲图片区
		BufferedImage bi = null;
	try {
		bi = ImageIO.read(ff);//从文件到图片对象
	}catch(Exception ef) {
		ef.printStackTrace();
	}
	int w = bi.getWidth();//图片的宽
	int h = bi.getHeight();//图片的高
	int[][] ia = new int[w][h];//用来装像素点的二维数组
	//取得图片中的像素点
	for(int i=0;i<w;i++) {
		for(int j=0;j<h;j++) {
			//取得内存图片中,指定位置的像素值
			int iv = bi.getRGB(i, j);//i,j位置的color值
			ia[i][j] = iv;//每个像素点的color存入数组
		}
	}
	System.out.println("载入图片成功!");
	return ia;
	}
}

         如上图,在监听器中将图像转换成二维数组即可实现图像的显示;在监听器程序中可以通过改变像素点的大小以及间距(i,j的循环递增值 以及像素点的宽和高),就可以实现图像的模糊处理。 其次,实现图像的二值化,就是利用int创建颜色,将颜色进行拆分后,重新构造一个颜色的填充方式,对图片进行特效处理。

二值化部分代码如下:

    Color color = new Color(v);	
    //二值化	
	//拆分颜色
	int rc = color.getRed();
	int rg = color.getGreen();
	int rb = color.getBlue();
	//重新构造一个颜色
	color = new Color(rc,rg,rb);
    //改变条件,即可改变颜色的填充范围
	if(rc>100) {     
		g.setColor(Color.red);
	}else{
		g.setColor(Color.black);
	}

二值化效果图:给拆分的颜色添加填充条件            如果将Color的(v)变成(-v)。效果图如下:

  灰度图像效果图:取R,G,B三个分量的平均值         单通道图像效果图:仅用R,G,B中某一值     即可:int sum =(rc+rg+rb)/3                                    ,另外两个置0。color = new Color(rg,0,0);                  color = new Color(sum,sum,sum);   

 

除此之外,还可以通过添加条件,改变数据等方法,实现图片的去背景、珠纹化、马赛克、黑白、油画等效果。

1.去背景效果。原理是限制颜色填充的区域,只画高于某一值的颜色,即可实现去背景效果

int[][] ia = getImage();
        for(int i=0;i<ia.length;i+=1) {
            for(int j=0;j<ia[i].length;j+=1) {
                int v= ia[i][j];    //取得一个int代表当前位置的像素值
                Color color = new Color(v);    
                //拆分颜色
                int rc =color.getRed();   int rg = color.getGreen();   int rb = color.getBlue();
                if(rc>120) {      //填充颜色条件
                        g.setColor(color);   //设上这个颜色
                        g.fillOval(i/2+120, j/2+120, 2, 2); //圆形
                }

             }

         }

 

 2.珠纹化效果。原理是增加两个像素点之间的距离,改变i,j的自增值,以及像素点的宽高

    int[][] ia = getImage();
        for(int i=0;i<ia.length;i+=16) {
            for(int j=0;j<ia[i].length;j+=16) {
                int v= ia[i][j];         //取得一个int代表当前位置的像素值
                Color color = new Color(v);    
            //拆分颜色
                int rc =color.getRed();   int rg = color.getGreen();   int rb = color.getBlue();
                    g.setColor(color);      //设上这个颜色
                    g.fillOval(i/2+40, j/2+70, 8, 8); //圆形
            }
        }    

3.马赛克效果。原理添加随机数,设置像素点的大小随机取值,增加间距。

int[][] ia = getImage();
        for(int i=0;i<ia.length;i+=10) {
            for(int j=0;j<ia[i].length;j+=10) {
                int v= ia[i][j];      //取得一个int代表当前位置的像素值
                Color color = new Color(v);    
                           g.setColor(color);         //设上这个颜色
                    //随机数添加马赛克
                    Random rand = new Random();
                    int w = rand.nextInt(20);  
                    g.fillRect(i/2+40, j/2+70, w, w);    //正方形
            }
        }    

4.黑白效果。原理是设置填充条件,大于某个值填充黑色,否则填充白色。

        int rc =color.getRed();    int rg = color.getGreen();    int rb = color.getBlue();
                if(rc>120) {
                      g.setColor(color.BLACK); 
                }else {
                      g.setColor(color.WHITE);
                }
                      g.fillOval(i/2+40, j/2+70, 2, 2); //圆形

5.油画效果。原理 填充随机大小的色块

int[][] ia = getImage();
        for(int i=0;i<ia.length;i+=5) {
            for(int j=0;j<ia[i].length;j+=5) {
                int v= ia[i][j];        //取得一个int代表当前位置的像素值

                Color color = new Color(v);    
                g.setColor(color);
                    //随机数添加马赛克
                    Random rand = new Random();
                    int w = rand.nextInt(20)+5;
                    g.fillOval(i/2+40, j/2+70, w, w); //油画

            }       

        }

色即是数,数即是色!!!  想要改变图片效果,将图片看作是二维数组,改变数据即可得到想要的效果。

三、在第二版本的基础上,添加菜单栏以及菜单的文件选项,可以在在系统文件夹中选择任意一张照片,显示在画布中

Mune(菜单)是窗体程序最常用的一种组件,在Swing体系中,有两种菜单:

        1、基于菜单条的,一般加在JFrame组件上;

        2、JpopupMenu:可以其它swing组件是单击右键的弹出式菜单。

创建窗体对象上的菜单条,菜单条上的菜单由三部分组成:

        javax.swing.Jmenubar类:放置菜单的菜单条,可以通过new Jmenubar()构造菜单条对象;

        javax.swing.JMenu:菜单目录对象,new JMenu("文件"),构造一个菜单条目对象;

        javax.swing.JmenuItem:菜单条目录,new JmenuItem(“菜单条目1”)创建;

        以上三者关系是:JMenu放在JmenuBar上,JmenuItem放在JMenu上。

如何获取电脑中的文件,实现打开按钮,可以直接百度,别人写好的直接拿来用就可以。

具体实现代码如下:

package TuXiang1;

import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class tuxiang3 extends JFrame {
private DrawLis3 dl = null;

public void initUI(){
	this.setSize(600,600);
	this.setTitle("图像处理");
	this.setDefaultCloseOperation(3);
	this.setVisible(true);
	
	FlowLayout fl = new FlowLayout();
	this.setLayout(fl);
	//加上按钮
	JButton buDraw = new JButton("添加图片");
	this.add(buDraw);
	//加菜单栏
	JMenuBar mb = getMB();
	this.setJMenuBar(mb);
	
	//加监听器
	this.setVisible(true);
	//获取画布,一定在界面可见之后
	Graphics g = this.getGraphics();
	this.dl = new DrawLis3(g);
	buDraw.addActionListener(dl);
}

	//创建菜单 返回一个菜单条
	public JMenuBar getMB(){
		JMenuBar mb = new JMenuBar();
	//加菜单
	JMenu jmFile = new JMenu("文件");
	JMenu jmOpp = new JMenu("操作");
	mb.add(jmFile);
	mb.add(jmOpp);
	//给菜单加上菜单项
	JMenuItem miOpen = new JMenuItem("打开");
	//以匿名内部类的形式,加上监听器
	miOpen.addActionListener(new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO 自动生成的方法存根
			System.out.println("Open..........");
			//获取电脑中的文件  看不懂没关系 知道怎么用就可以
			JFileChooser chooser = new JFileChooser();
	        chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
	        chooser.showDialog(new JLabel(), "选择");
	        File file = chooser.getSelectedFile();
	        String fName = file.getAbsoluteFile().toString();
	        
	        dl.setImageFile(fName);
	        System.out.println("已选择文件名是" + fName);
		}
	});
        //创建菜单项
		JMenuItem miNew = new JMenuItem("新建");	
		JMenuItem miSave = new JMenuItem("保存");
		JMenuItem miExit = new JMenuItem("退出");
        //将上述菜单项加到功能菜单上
		jmFile.add(miOpen);
		jmFile.add(miNew);
		jmFile.add(miSave);
		jmFile.add(miExit);
		return mb;		
	}
		public static void main(String[] args) {
		tuxiang3 lu=new tuxiang3();
		lu.initUI();
		}
	}
package TuXiang1;

import javax.imageio.ImageIO;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

public class DrawLis3 implements ActionListener{
	
	private Graphics g;
	private String imageFileName = null;//要打开的图片文件名
	public DrawLis3(Graphics g) {this.g=g;}
	public void setImageFile(String sf) {
		this.imageFileName = sf;
	}
	public void actionPerformed(ActionEvent e) {	
		//改为画上一张图片
		int[][] ia = getImage();
		for(int i=0;i<ia.length;i++) {
			for(int j=0;j<ia[i].length;j++) {
				//取得一个int代表当前位置的像素值
				int v= ia[i][j];
			//如何将这个int值,转变成为color?色即是数
				Color color = new Color(v);
				
			//设上这个颜色
					g.setColor(color);
				g.fillOval(i/2+120, j/2+120, 2, 2);
			}
		}	
	}

	//载入一张图片 将一张图片,转换成二维数组,一个点一个点的在界面上画出
	public int[][] getImage(){
		System.out.println("要打开的图片文件名是" + imageFileName);
		File ff = new File(imageFileName);
		//将图片文件载入缓冲图片区
		BufferedImage bi = null;
	try {
		bi = ImageIO.read(ff);//从文件到图片对象
	}catch(Exception ef) {
		ef.printStackTrace();
	}
	
	int w = bi.getWidth();//图片的宽
	int h = bi.getHeight();//图片的高
	int[][] ia = new int[w][h];//用来装像素点的二维数组
	//取得图片中的像素点
	for(int i=0;i<w;i++) {
		for(int j=0;j<h;j++) {
			//取得内存图片中,指定位置的像素值
			int iv = bi.getRGB(i, j);//i,j位置的color值
			ia[i][j] = iv;//每个像素点的color存入数组
//			System.out.println("getImage 中" +i+" "+j+ "位置像素值是"+iv);
		}
	}
	System.out.println("载入图片成功!");
	return ia;
	
	}
}

 

        如上所示,添加了菜单栏,我们就可以选择电脑中任意一张照片。通过改变数据和颜色,就可以对任意一张照片做效果处理。

四、添加滑杆组件,通过滑动滑杆控制图片的大小

        滑杆组件为javax.swing.JSlider,通常用来调节颜色、数值;监听器需实现ChangeListener,可获取事件源即拖动的JSlider;在监听器中,得到JSllider拖动时的当前值。

先为界面添加滑杆组件:JSlider js = new JSlider();

package TuXiang1;

import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSlider;

	public class tuxiang5 extends JFrame {		
		public void initUI(){
			this.setSize(600,600);
			this.setTitle("图像处理");
			this.setDefaultCloseOperation(3);
			this.setVisible(true);
			FlowLayout fl = new FlowLayout();
			this.setLayout(fl);

			//加上按钮
			JButton buDraw = new JButton("添加图片");
			this.add(buDraw);
			
			//滑杆
			JSlider js = new JSlider();
			this.add(js);
			//加监听器
			this.setVisible(true);
		
			//获取画布,一定在界面可见之后
			Graphics g = this.getGraphics();
			DrawLis5 dl = new DrawLis5(g,js);
			//加监听器 o.addXXXXListener(接口 k)
			js.addChangeListener(dl);
			buDraw.addActionListener(dl);
		}
public static void main(String args[]) {
		tuxiang5 lu=new tuxiang5();
		lu.initUI();
	}
}

        接下来,需要在监听器类中实现滑块的具体功能。如果要用滑块改变图片的大小,需要创建一块内存缓冲区,将图片画在内存缓冲区中。利用接口implements分别实现按钮和滑杆的方法。

package TuXiang1;

import javax.imageio.ImageIO;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
//1.画图按钮的监听器,点一下画个东西出来
//2.拉杆的监听器

public class DrawLis5 implements ActionListener,ChangeListener{
	
	private Graphics g;
	private JSlider js;//界面上的拉杆
	private int[][] ia;//要初始化的从文件读取的图片数组
	
	public DrawLis5(Graphics g,JSlider js){
		this.g=g;
		this.js=js;
		//装在一张默认的图片
		ia = getImage();
	}

	//当拉杆拉动时,此方法被调用
	public void stateChanged(ChangeEvent e){
		int v = js.getValue();
		System.out.println("js的当前值是"+v);
		
		//记录一下时间
		long start = System.currentTimeMillis();
		System.out.println("开始时时间是" +start);
		//创建一块内存缓冲区,一张内存图片
		BufferedImage buffrer = new BufferedImage(500,500,BufferedImage.TYPE_INT_RGB);
			Graphics bufferG = buffrer.getGraphics();//缓冲区图片
		
		for(int i=0;i<ia.length;i+=1) { //100
			for(int j=0;j<ia[i].length;j+=1) { //100
			//取得一个int代表当前位置的像素值
				int iv= ia[i][j];
			//如何将这个int值,转变成为color?色即是数
				Color color = new Color(iv);	
			//设上这个颜色和画图,都画到内存缓冲区中
				bufferG.setColor(color);
				//java→os→cpu→内存→总线→显卡→液晶点
				bufferG.fillOval(i/v, j/v, 2, 2); //圆形
				}
			}
		//将内存图片,画到界面的画布上
		g.drawImage(buffrer,40,70,null);
		
		//记录一下时间
		long end = System.currentTimeMillis();
		long cost = end - start;
		System.out.println("绘制用时:"+(end-start));
		
	}
	//当按下按钮时,此方法被调用
	public void actionPerformed(ActionEvent e) {	
		int v = js.getValue();
		System.out.println("js的当前值是"+v);
		
	
		//记录一下时间
		long start = System.currentTimeMillis();
		System.out.println("开始时时间是" +start);
		//创建一块内存缓冲区,一张内存图片
		BufferedImage buffrer = new BufferedImage(500,500,BufferedImage.TYPE_INT_RGB);
			Graphics bufferG = buffrer.getGraphics();//缓冲区图片
		
		for(int i=0;i<ia.length;i+=1) { //100
			for(int j=0;j<ia[i].length;j+=1) { //100
			//取得一个int代表当前位置的像素值
				int iv= ia[i][j];
			//如何将这个int值,转变成为color?色即是数
				Color color = new Color(iv);	
				bufferG.setColor(color);
				//java→os→cpu→内存→总线→显卡→液晶点
				bufferG.fillOval(i/v, j/v, 2, 2); //圆形
			}
		}
		//将内存图片,画到界面的画布上
		g.drawImage(buffrer,40,70,null);
		
		//记录一下时间
		long end = System.currentTimeMillis();
		long cost = end - start;
		System.out.println("绘制用时:"+(end-start));

		}	

	//载入一张图片 将一张图片,转换成二维数组,一个点一个点的在界面上画出
	public int[][] getImage(){
		java.io.File ff = new File("00.jpg");
		//将图片文件载入缓冲图片区
		BufferedImage bi = null;
	try {
		bi = ImageIO.read(ff);//从文件到图片对象
	}catch(Exception ef) {
		ef.printStackTrace();
	}
	
	int w = bi.getWidth();//图片的宽
	int h = bi.getHeight();//图片的高
	int[][] ia = new int[w][h];//用来装像素点的二维数组
	//取得图片中的像素点
	for(int i=0;i<w;i++) {
		for(int j=0;j<h;j++) {
			//取得内存图片中,指定位置的像素值
			int iv = bi.getRGB(i, j);//i,j位置的color值
			ia[i][j] = iv;//每个像素点的color存入数组
		}
	}
	System.out.println("载入图片成功!");
	return ia;
	
	}

}

 

 滑动滑块时,图片的大小会随之变化,同时控制台也会输出当前图片的大小,绘制所用的时间。

五、两张图片叠加效果。存入两张照片,分别填充颜色,可以调节图片的透明度。

 监听器类代码:

package TuXiang1;

import javax.imageio.ImageIO;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
//画图按钮的监听器,点一下画个东西出来
public class DrawLis6 implements ActionListener{
	
	private Graphics g;
	public DrawLis6(Graphics g) {this.g=g;}
	public void actionPerformed(ActionEvent e) {
		
		//改为画上一张图片  a,b图叠加效果
		int[][] ia = getImage("123.jpg");
		int[][] ib = getImage("456.jpg");
		for(int i=0;i<ia.length;i++) {
			for(int j=0;j<ia[i].length;j++) {
				//取得a图片的颜色值
				int v= ia[i][j];
				Color acolor = new Color(v);
				int arc = acolor.getRed();
				int arg = acolor.getGreen();
				int arb = acolor.getBlue();
				//取得b图片的颜色值
				v=ib[i][j];
				Color bcolor = new Color(v);
				int brc = bcolor.getRed();
				int brg = bcolor.getGreen();
				int brb = bcolor.getBlue();
				
				int lastR = (int)(arc*0.5+brc*0.5);
				int lastG = (int)(arg*0.5+brg*0.5);
				int lastB = (int)(arb*0.5+brb*0.5);
				Color ccc = new Color(lastR,lastG,lastB);
				
			//设上这个颜色
				g.setColor(ccc);
				g.fillOval(i/3+80, j/3+100, 2, 2);
			}
		}	
	}

	//载入一张图片 将一张图片,转换成二维数组,一个点一个点的在界面上画出
	public int[][] getImage(String fname){
		java.io.File ff = new File(fname);
		//将图片文件载入缓冲图片区
		BufferedImage bi = null;
	try {
		bi = ImageIO.read(ff);//从文件到图片对象
	}catch(Exception ef) {
		ef.printStackTrace();
	}
	
	int w = bi.getWidth();//图片的宽
	int h = bi.getHeight();//图片的高
	int[][] ia = new int[w][h];//用来装像素点的二维数组
	//取得图片中的像素点
	for(int i=0;i<w;i++) {
		for(int j=0;j<h;j++) {
			//取得内存图片中,指定位置的像素值
			int iv = bi.getRGB(i, j);//i,j位置的color值
			ia[i][j] = iv;//每个像素点的color存入数组
		}
	}
	System.out.println("载入图片成功!");
	return ia;
	
	}
}

             改变图片的填充饱和度,即可改变透明度

                int lastR = (int)(arc*0.5+brc*0.5);
                int lastG = (int)(arg*0.5+brg*0.5);
                int lastB = (int)(arb*0.5+brb*0.5);
                Color ccc = new Color(lastR,lastG,lastB);

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第1章 Java概述、安装及简易教学 14 1-1 Java概述 14 1-2 Java安装 16 1-3 Eclipse安装 18 1-4 GUI设计工具WindowBuilder 18 1-5 在Eclipse开发第一个Java程式 23 1-6 在Eclipse开发第一个Java视窗程式-显示影像 26 1-7 在Eclipse开发视窗程式-slider控制元件 34 1-8 在Eclipse开发视窗程式-按钮控制元件 39 1-9 好用的Eclipse热键 41 第2章 OpenCV概述、安装及设定 42 2-2 关于OpenCV 3.0及3.1 43 2-3 使用Java开发OpenCV的缺点 45 2-4 OpenCV的下载及安装 45 2-5 Eclipse设定OpenCV开发环境 46 2-6 整合JavaEclipse与OpenCV 49 2-7 开发第一个OpenCV程式 51 2-8 建立矩阵 52 范例2-8-1 建立第一个opencv的矩阵,使用阵列 53 范例2-8-2 建立opencv的Mat矩阵方法2 55 范例2-8-3 方法3以单一元素指定 56 范例2-8-4 方法4全部以同一元素指定 57 范例2-8-5 方法5以个别单一元素指定 58 范例2-8-6 方法6以1维阵列指定建立 59 第3章 OpenCV基础数学计算 60 范例3-1-1 矩阵的线性代数计算1 60 范例3-1-2 矩阵的矩阵线性代数计算2-加减乘除处理 62 范例3-1-3 矩阵的矩阵线性代数计算3 65 范例3-2-1 矩阵的统计方面计算1 68 范例3-2-2矩阵的统计方面计算2 69 范例3-3-1 矩阵其他数学计算 72 第4章 影像基本输出输入处理 78 范例4-1-1 Opencv读取写入练习 79 范例4-1-2 Opencv读取影像并显示至视窗 81 范例4-1-3 Opencv读取影像显示至视窗-版本2 84 范例4-1-4影像储存压缩品质选择 87 范例4-2-1 Opencv使用webcam拍照,并存放置资料匣 89 范例4-2-2 使用webcam拍照明亮版-并存放影像在资料匣 90 范例4-2-3 使用webcam读取动态影像至Java Swing视窗 91 范例4-2-4 使用webcam读取动态影像至Java Swing视窗2 92 范例4-2-5 手动拍照 94 范例4-2-6 使用webcam录制影片档 96 范例4-2-7 使用xuggle录制电脑画面 99 范例4-2-8 使用Opencv API录制影片档案 102 范例4-3-1 Opencv API拨放影片档案,使用Panel 104 范例4-3-2 Opencv API拨放影片档案,不使用Panel 105 范例4-4-1从IPCam读取网路串流影像 107 范例4-4-2从IPCam拍摄照片 108 第5章 影像基本处理 109 范例5-1-1使用ConvertTo调整影像明亮度 109 范例5-1-2使用ConvertTo及GUI元件调整影像明暗度 110 范例5-1-3使用addWeighted及GUI元件调整影像明亮度 111 范例5-1-4改变影像的每1个像素调整影像明亮度 112 范例5-2-1全彩图转灰阶图 113 范例5-3-1影像颜色相反,使用Bitwise_xor 114 范例5-3-2影像颜色相反,使用subtract 115 范例5-3-3影像颜色相反,使用Bitwise_not 116 范例5-4-1模糊处理-使用Gaussian高斯函数及GUI元件 116 范例5-4-2修正5-4-1高斯模糊的异常 117 范例5-4-3模糊处理-使用median函数及GUI元件 118 范例5-4-4模糊处理-使用BoxFilter函数及GUI元件 119 范例5-5-1 Threshold-使用临界值函数及GUI元件 122 范例5-5-2 AdaptiveThreshold-使用自适临界值及GUI元件 128 范例5-6-1 Sharpness锐利化处理 130 范例5-6-2锐利化处理,使用GUI元件 131 范例5-7-1 影像合并/融合处理处理,使用GUI元件 131 范例5-8-1 影像缩放-使用Gaussian高斯金字塔及GUI元件 133 范例5-8-2影像缩放-使用resize使用GUI元件 135 范例5-8-3 影像延展效果-使用resize使用GUI元件 136 范例5-8-4影像缩放-使用getRotationMatrix2D及GUI元件 137 范例5-9-1影像旋转以90度*n为主-使用remap及 GUI元件 138 范例5-9-2影像旋转以90度*n为主-使用Flip及 GUI元件 140 范例5-9-3 影像可任意角度旋转缩放使用 GUI元件 141 范例5-10-1 影像扭曲倾斜处理使用GUI元件 143 范例5-11-1 灰阶影像对比强化处理并GUI显示 147 范例5-11-2 影像强化对比效果,使用均衡化直方图 149 范例5-11-3 RGB彩色强化对比效果,使用均衡化直方图及融合 150 范例5-11-4 YUV彩色强化对比效果,使用均衡化直方图及融合 151 范例5-12-1 影像梦幻沙龙处理使用GUI显示 152 范例5-13-1 影像各式颜色空间转换于GUI显示 154 范例5-14-1 影像堆叠 155 范例5-15-1 影像马赛克处理 157 范例5-16-1 影像添加外框 158 范例5-17-1合并两个影像 160 范例5-17-2合并两个影像,使用不规则形状 161 第6章 使用核矩阵进行影像处理 165 范例6-1-1 Mean filter处理 165 范例6-2-1 Prewitt Filter处理 167 范例6-3-1 Laplacian Filter处理1 170 范例6-3-2 Laplacian Filter处理2 171 范例6-3-3 Laplacian Filter灰阶影像处理 173 范例6-3-4 Laplacian Filter使用核矩阵 173 范例6-4-1 Sobel Filter使用核矩阵 175 范例6-4-2 Sobel Filter处理使用内建API 176 范例6-4-3 Sobel Filter处理使用内建API2 178 范例6-5-1 Frei Chenn Filter处理 180 范例6-6-1 Scharr Filter使用核矩阵 180 范例6-6-2 Scharr使用API 181 范例6-7-1 Robinson Filter处理 182 范例6-8-1 Kirsch Filter处理 184 范例6-9-1 Emboss浮雕处理 186 范例6-10-1 创造自己的filter 187 范例6-11-1 SqrBoxFilter处理 188 第7章 绘图 190 范例7-1-1 画线 190 范例7-2-1 画点 191 范例7-3-1 画圆 191 范例7-4-1 画椭圆形 192 范例7-4-2 椭圆内近似多边形练习 194 范例7-5-1 填补凸多边形练习 195 范例7-6-1 多边形绘图(填满)练习 196 范例7-6-2 多边形填充使用滑鼠练习 197 范例7-7-1中空多边形绘图练习 198 范例7-8-1 输入文字练习 200 范例7-8-2 输入文字使用中文练习 202 范例7-8-3浮水印练习 205 范例7-9-1 矩形练习 206 范例7-9-2 判断A矩形是否有在B矩形内 207 范例7-10-1 综合应用:直方图统计练习 208 范例7-11-1 颜色洪水填充处理练习1 211 范例7-11-2 颜色洪水填充处理练习2 213 范例7-11-3 颜色洪水填充处理3-重拾小朋友填色乐趣. 214 范例7-12-1 综合练习:使用一个最小矩形包含一堆点 215 范例7-13-1 综合练习:使用一个最小矩形包含一堆矩形 216 范例7-14-1 综合练习:使用一个矩形撷取影像区块 218 范例7-14-2综合练习:中空多边形绘制使用滑鼠 220 范例7-14-3综合练习:使用多边形撷取不规则影像区块1 222 范例7-14-4 综合练习:使用多边形撷取不规则影像区块2 227 范例7-14-5 综合练习:使用多边形撷取影像贴至另一影像 228 范例7-15-1箭头练习 232 范例7-16-1 特殊符号练习 233 范例7-17-1 立体浮雕制作 235 第8章 进阶影像处理 241 范例8-1-1 Erosion腐蚀处理练习 241 范例8-2-1 Dilation膨胀处理练习 242 范例8-3-1 其他形态学变换处理练习 244 范例8-4-1 Canny边缘检测处理练习1 246 范例8-4-2 Canny边缘检测处理练习2 248 范例8-5-1 卡通化处理1,整合模糊及Canny 249 范例8-5-2 卡通化处理2 252 范例8-5-3 卡通化及线条Live版 253 范例8-6-1 抠出背景处理练习 254 范例8-7-1聚光灯效果处理练习 256 范例8-9-1 分水岭演算法Watershed处理练习 258 范例8-10-1 油画效果处理练习 261 范例8-11-1 多种色调处理练习 262 范例8-12-1 圆形转矩形处理练习 266 范例8-13-1 LogPolar极座标转换处理 267 第9章 强大相片类处理 270 范例9-1-1 影像修复功能处理练习 270 范例9-2-1 影像减色/脱色/降灰阶处理练习 272 范例9-3-1 消除杂点练习1 273 范例9-3-2 消除杂点练习2 274 范例9-3-3 消除杂点练习3 275 范例9-3-4 消除杂点练习4 276 范例9-4-1 HDR高动态范围成像练习 277 范例9-5-1 Seamless Cloning系列 Color Change练习 285 范例9-6-1 Illumination Change练习 287 范例9-7-1 Texture Flattening水彩化 288 范例9-7-2 水彩的世界-Live版 290 范例9-8-1 Seamless Cloning系列-澄清湖水怪无缝贴图 290 范例9-8-2 Seamless Cloning系列-背景练习 295 范例9-8-3 综合练习:使用多边形撷取无缝贴图实作练习 296 范例9-9-1 Non-Photorealistic Rendering非实感绘制-强化 300 范例9-10-1 非实感绘制系列-模糊影像边缘保留处理 301 范例9-11-1 非实感绘制系列-铅笔处理 302 范例9-12-1 非实感绘制系列-写实风格化 304 范例9-12-2 写实风格化Live版 305 范例9-13-1 具限制性对比度自适应直方图均衡CLAHE 306 范例9-14-1 影像形状自动校正 308 范例9-14-2 影像角度自动校正 311 第10章 检测 314 范例10-1-1 Hough Line霍夫线变换1 314 范例10-1-2 Hough Line霍夫线变换2 317 范例10-1-3线段检测 319 范例10-2-1 Hough Circle霍夫圆变换 321 范例10-2-2霍夫圆变换应用:距离量测使用Cam实作 324 范例10-2-3 综合应用-虚拟画笔Live版1 327 范例10-2-4 虚拟画笔Live版2 330 范例10-3-1 寻找轮廓 332 范例10-3-2 轮廓顺序表示法 334 范例10-4-1 寻找轮廓并且绘出外框矩形1 336 范例10-4-2 寻找轮廓并且绘出外框矩形2 338 范例10-4-3 多点绘出外框矩形1 341 范例10-4-4 多点绘出外框矩形2 342 范例10-4-5 多点绘出外框凸多边形 343 范例10-4-6 绘出多点外框圆形 345 范例10-4-7 绘出多点外框椭圆形 346 范例10-4-8 最近似外框多边形 347 范例10-4-9 绘出多点最适外框三角形 349 范例10-5-1寻找轮廓并且绘出外框圆形 351 范例10-5-2寻找轮廓并且绘出外框椭圆形 352 范例10-5-3寻找轮廓并且绘出外框三角形 354 范例10-6-1判断某点是否在凸边形的轮廓内 356 范例10-7-1计算轮廓的面积与周长 357 范例10-8-1使用匹配模板找出某物 359 范例10-8-2使用非匹配模板找出某物 363 范例10-8-3 修正使用匹配与非匹配模板找出某物 364 范例10-9-1 convexHull凸包处理 367 范例10-10-1 convexityDefects凸包缺陷 369 范例10-11-1颜色区域检测 373 范例10-12-1颜色辨识-反向投影1 377 范例10-12-2颜色辨识-反向投影2 379 范例10-12-3颜色辨识-反向投影3 380 范例10-13-1颜色辨识以RGB为主 381 范例10-13-2颜色辨识,使用HSV彩色空间 382 范例10-13-3影像颜色检测 384 范例10-14-1从webcam读取影像及判断HSV颜色值 385 范例10-14-2读取影像及调整HSV颜色值捕捉物体 387 范例10-14-3计算生锈面积 389 范例10-15-1综合应用,辨识蓝色圆形物 390 范例10-15-2综合应用:辨识蓝色圆形物-增加膨胀以改良 393 范例10-16-1找出肤色Live版 395 范例10-16-2找出肤色Live改善版 396 范例10-17-1手势、手指数目辨识 397 范例10-17-2手势控制相机先比5后比Ya(2指)触发自动拍照 406 范例10-18-1 Xray效果及找到手掌心 407 范例10-18-2找到手掌心 Live版 410 范例10-18-3找到掌心与手指 Live版 411 范例10-19-1 空间矩、中心矩、标准中心矩及Hu不变矩 411 范例10-19-2比较两个形状 416 范例10-19-3比较两个影像,使用直方图比对法 419 范例10-19-4找出某物整合MatchTemplete与compareHist 422 范例10-20-1 找出合适的切线 425 范例10-20-2 众点找出合适的切线 428 范例10-21-1束绳检测是否断裂1 430 范例10-21-2束绳检测是否断裂2 432 范例10-21-3束绳检测是否断裂3 433 范例10-22-1束绳检测是否偏斜1 435 范例10-22-2束绳检测是否偏斜2 437 范例10-22-3束绳检测是否偏斜3 439 范例10-23-1 综合应用:找出趋势图最高点 441 范例10-24-1寻找两个矩形的交叉点 442 范例10-25-1 捕抓萤幕画面 444 范例10-25-2找出应用程式在萤幕的位置-我的Word在那里 446 第11章 特征点检测 450 范例11-1-1 Shi-Tomasi角点检测方法 450 范例11-1-2利用角点检测找出particle-Live版 452 范例11-2-1 Harris-Stephens边缘检测方法 453 范例11-3-1更精确的角点检测 454 范例11-4-1特征点检测计算 457 范例11-5-1利用Features2D二维特征点寻找物体 462 范例11-5-2利用二维特征点SURF+FLANN寻找物体-Live版 468 范例11-5-3利用Features2D寻找近似物体 468 范例11-6-1利用二维特征点及Homography单映射寻找物体 472 范例11-6-2利用二维特征点及单映射寻找物体Live版 476 范例11-6-3利用二维特征点及单映射寻找近似物体 476 范例11-7-1客制化角点检测视窗 477 范例11-8-1寻找出棋盘格 480 范例11-8-2寻找出棋盘格Live版 483 范例11-9-1矫正镜头畸形 483 范例11-9-1利用矫正镜头制造艺术化扭曲影像 487 第12章 运动追踪motion tracking 489 范例12-1-1补捉动静Live版 489 范例12-2-1使用HOG特征进行行人检测 491 范例12-2-2行人检测Live版 494 范例12-3-1 Lucas-Kanade光流 494 范例12-3-2 Farneback光流 499 范例12-4-1使用MOG特征进行行人检测 502 范例12-4-2 MOG特征进行行人检测Live版 504 范例12-4-3使用KNN特征进行行人检测 505 范例12-4-4 KNN特征进行行人检测Live版 506 范例12-5-1使用Meanshift均值偏移寻找物体Live版 507 范例12-6-1使用CamShift人脸追踪Live版 509 范例12-7-1 Kalman Filter滤波,随机乱跑Live版 512 范例12-7-2 Kalman Filter滤波,追踪蓝色圆形Live版 516 范例12-8-1更新运动历史图像Live版 517 第13章 Machine Learning机器学习 523 范例13-1-1人脸辨识 524 范例13-1-2人脸辨识Live版 527 范例13-1-3人脸辨识含眼鼻Live版 527 范例13-1-4人脸眼鼻快速辨识Live版 529 范例13-1-5 整合应用:检测到眼睛自动添加眼镜Live版 531 范例13-1-6检测到眼睛自动添加半透明眼镜Live版 534 范例13-1-7检测行人 535 范例13-1-8检测车辆 537 范例13-1-9 DetectMultiScale3参数测试 538 范例13-1-10计算车流量 540 范例13-1-11 侦测RJ45网路头Live版 542 范例13-2-1 电脑小手写板程式Live版 549 范例13-2-1a手写数字的资料库 552 范例13-2-1b鸢尾花资料库 555 范例13-3-1常态贝叶斯分类器预测鸢尾花数据集 560 范例13-3-2常态贝叶斯分类器-预测手写数字 561 范例13-3-3常态贝叶斯分类器-预测手写数字Live版 563 范例13-4-1决策树Decision Trees预测鸢尾花数据集 565 范例13-4-2决策树-预测手写数字 569 范例13-4-3决策树-预测手写数字Live版 571 范例13-5-1最大期望值EM-预测鸢尾花数据集 572 范例13-5-2最大期望值-预测鸢尾花数据集二元分类 576 范例13-5-3最大期望值-预测鸢尾花数据集3类修改版 578 范例13-5-4最大期望值-预测手写数字 581 范例13-5-5最大期望值-预测手写数字(二元分类) 583 范例13-5-6最大期望值-预测手写数字Live版 586 范例13-6-1 Logistic回归-预测鸢尾花数据集 586 范例13-6-2 Logistic回归-预测手写数字 590 范例13-6-3 Logistic回归-预测手写数字,调整参数 593 范例13-6-4 Logistic回归-预测手写数字Live版 593 范例13-7-1 KNN-预测鸢尾花数据集 594 范例13-7-2 KNN-预测鸢尾花数据集2 597 范例13-7-3 KNN-预测手写数字 600 范例13-7-3 KNN-预测手写数字Live版 602 范例13-7-5 KNN-分类练习 602 范例13-8-1 随机森林-预测鸢尾花数据集 604 范例13-8-2随机森林-预测手写数字 607 范例13-8-3 随机森林-预测手写数字Live版 609 范例13-9-1 Boost分类-预测鸢尾花数据集 609 范例13-9-2 Boost分类-预测鸢尾花数据集2 612 范例13-9-3 Boost-预测手写数字 615 范例13-9-4 Boost-预测手写数字Live版 617 范例13-10-1 类神经网路-初声试啼小练习 618 范例13-10-2 类神经网路-预测鸢尾花数据集 623 范例13-10-3类神经网路-预测手写数字 625 范例13-10-4类神经网路-预测手写数字Live版 627 范例13-11-1 SVM-预测鸢尾花数据集 627 范例13-11-2 SVM预测手写数字 631 范例13-11-3 SVM预测手写数字Live版 633 范例13-11-4 SVM分类练习于2D平面 633 范例13-12-1 Kmean(K均值)简单分类 636 范例13-12-2 Kmean 1维数据分类 640 范例13-12-3 Kmean 2维数据分类 643 范例13-12-4 Kmean 应用于影像处理-减色处理 646 范例13-12-5 Kmean预测分类-鸢尾花数据集 648 范例13-12-6 Kmean预测分类-手写数字数据集 650 范例13-12-7 Kmean预测分类-手写数字Live版 652 范例13-13-1马氏距离 654 范例13-13-2马氏距离使用于-鸢尾花数据集 656 范例13-13-3马氏距离使用于-手写数字数据集 657 范例13-13-4修改马氏距离使用于-手写数字数据集 660 范例13-13-5修改马氏距离使用于-鸢尾花数据集 665 范例13-13-6修改版马氏距离使用于-预测手写数字Live版 666 范例13-14-1主成份分析PCA 671 范例13-14-2鸢尾花数据集使用PCA降维 673 范例13-14-3鸢尾花数据使用PCA降维整合Kmean聚类处理 675 范例13-14-4鸢尾花数据使用PCA降维整合Knn分类处理 678 范例13-14-5手写数字集使用PCA降维整合Kmean聚类处理 680 范例13-14-6 手写数字集使用PCA降维整合KNN及SVM分类 682 范例13-14-7 改善手写数字集使用PCA降维整合KNN及SVM 685 范例13-14-8 改善鸢尾花数据使用PCA降维整合KNN分类 689 范例13-14-9个人人脸辨识整合PCA与SVM计算 690 范例13-14-10个人人脸辨识整合PCA与LibSVM计算 694 范例13-15-0车牌辨识 699 范例13-15-1 Java呼叫外部命令Tesseract字符识别引擎 701 第14章 其它功能与整合效果 703 范例14-1-1离散傅立叶转换 703 范例14-2-1视差(视角不对称)使用BM 706 范例14-2-2视差(视角不对称)使用SGBM 708 范例14-3-1综合应用:虚拟钢琴Live版 710 范例14-4-1平面细分割使用Subdiv2D 711 范例14-4-2综合练习,平面细分割使用Subdiv2D应用于人脸 715 范例14-4-2综合练习,平面细分割应用人脸Live版 718 第15章 发行Java应用程式 721 第16章 Opencv与Web整合 723 范例16-1-1 Hello Opencv 723 范例16-1-2 利用opencv显示影像 726 范例16-1-3在Web上模糊处理 729 范例16-1-4 jsp应用模糊处理 730 附录A Opencv Mat资料结构列表 734 附录B Opencv色彩空间转换资料格式列表 736 附录C Iris鸢尾花数据集 743 附录D Opencv Java开发异常说明 748 附录E Opencv for Java 2.4.12与3.1差异 749 附录F Opencv相关网址 754
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。   设定字符串为“张三,你好,我是李四”   产生张三的密钥对(keyPairZhang)   张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节   通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印   util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出菜单源码 简单 Java圆形按钮实例代码,含注释 两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟   用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例   Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式   //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener   在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话……   还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器   Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例   各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP   基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型   基于EJB的真实世界模型,附源代码,部分功能需JSP配合完成。 J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理   这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu   Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看   Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书   Java 数字签名、数字证书的相关实例。   关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于验证签名。   数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录   一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器   Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:   可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序   Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,   当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。   QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏   Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测   用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字   Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。 Java吃豆子游戏源代码 6个目标文件 内容索引:JAVA源码,游戏娱乐,JAVA游戏源码   JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板   使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制   Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制   Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果   Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密   WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书   Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和客户端 2个目标文件,如题。 Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视   用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择   Java语言开发的简洁实用的日期选择控件,源码文件功能说明:   [DateChooser.java] Java 日期选择控件(主体类) [public]   [TablePanel.java] 日历表格面板   [ConfigLine.java] 控制条类   [RoundBox.java] 限定选择控件   [MonthMaker.java] 月份表算法类   [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP   Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP   Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。   部分源代码摘录:   ftpClient = new FtpClient(); //实例化FtpClient对象   String serverAddr=jtfServer.getText(); //得到服务器地址   String user=jtfUser.getText(); //得到用户名   String pass=jtfPass.getPassword().toString(); //得到密码   ftpClient.openServer(serverAddr); //连接到服务器   ftpClient.login(user,pass); //在服务器上注册   InputStream is=ftpClient.list(); //得到服务器目录与文件列表输入流   StringBuffer info=new StringBuffer(); //实例化StringBuffer对象,用于输出信息   int ch;   while ((ch=is.read())>=0){ //未读完列表,则继续   info.append((char)ch); //增加信息   …… Java实现的点对点短消息发送协议(smpp)开发包源码 70个目标文件,如题。 Java实现的放大镜效果附有源文件 1个目标文件 内容索引:Java源码,初学实例,放大镜,哈哈镜   Java实现的放大镜效果附有源文件,编译环境最近出了问题,因此没有测试,也没有抓到图,希望各位自行测试一下。 Java实现跟踪鼠标运行坐标的源码 1个目标文件 内容索引:JAVA源码,系统相关,鼠标钩子   Java编写的一个小程序,用以实现跟踪鼠标的运行位置(坐标),程序很小,很实用,暂时抓不到截图。 Java实现移动的遮照效果 1个目标文件 摘要:Java源码,初学实例,遮照效果   Java实现移动的遮照效果,先实现椭圆形的遮罩,实例化媒体加载器,最后在创建缓冲区中的图像形成遮罩效果,而且它是会移动的。 Java鼠标拖拽功能 1个目标文件 Netbeans平台下实现的JAVA 拖放效果的一个实例,包括源代码和所需的图片资源。 (运行后会全屏显示窗体,没有关闭按钮,可使用快捷键Ctrl + F4关闭~) Java图片倒影效果实例源码 1个目标文件 摘要:Java源码,图形操作,图片倒影   Java图片倒影效果实例源码,有意思也很有参考价值的一个Java图像处理小程序,先读取图像然后进行图像重绘,产生倒影的效果,仅供参考。 java网络五子棋的源代码 7个目标文件 AVA网络五子棋,实现基本功能,无多余花哨内容,适合大学生课程设计学习使用,内含完整可运行源代码及运行指导视频,Eclipse环境。 Java文件选择器源代码 2个目标文件 摘要:Java源码,文件操作,文件选择器   Java文件选择器源代码 Java文字跑马灯与信息窗口 1个目标文件 摘要:Java源码,文件操作,跑马灯   Java文字跑马灯效果与信息窗口,将一段文字按照滚动的方式显示出来,在网页设计中比较常见,本例使用Java实现文字跑马灯效果Java写的ATM机取款模拟程序 9个目标文件 内容索引:JAVA源码,综合应用,ATM,JAVA,模拟   基于Java技术,只实现了ATM机的取款过程,有兴趣和有能力的高手可以再加以改进,这样就更完美了。可作为Java初学者《面向对象》编程的一个很好范例。     在这个程序中,用到以下JAVA类库:      dataAccess(数据操作)类:包含用于数据库的相关操作   atmScreen(ATM屏幕)类:主要创建各操作窗体和相应按钮事件   Account(用户帐户)类:包含用户信息的验证、余额查询和扣钱等方法   readCard(读卡机)类:包含读取用户卡号和退卡(退出系统)   moneyMac(取钱机)类:只用于打印清单   Atm(系统)类:系统主方法的开始,负责调用其他类 Java写的巨型LCD液晶时钟显示屏 8个目标文件 内容索引:JAVA源码,综合应用,电子钟,LCD,液晶   一个巨型LCD数字电子时钟,用JAVA写的,运行截图如上示。它还带有右键菜单,LCD颜色可以变换等。 Java用GZIP压缩解压文件 1个目标文件 摘要:Java源码,文件操作,GZIP   Java使用GZIP压缩解压文件,如果你正在使用Java开发文件压缩或解压的功能,那么Gzip应该来说是比较值得参考的,那么本实例或许正是您需要的,Java基于Gzip的文件压缩与解压程序源代码,供源码下载者参考。 Java用Zip压缩多个文件实例源码 1个目标文件 摘要:Java源码,文件操作,压缩文件   Java用Zip压缩多个文件,一个Java文件操作小实例,用ZIP同进压缩多个文件,实际是打开文件读取,然后再利用ZipEntry实例化待压缩的条目列表,将ZIP条目列表写入输出流,从源文件得到文件输入流,写入缓冲数据等。 Java游戏使命的召唤源码 5个目标文件 内容索引:JAVA源码,游戏娱乐,Java游戏源码,使命的召唤   Java游戏使命的召唤源码,又名:Call of Duty,MFORMA超精典游戏,有兴趣的可以重新编译学习一下。 Java源码的仿QQ聊天程序 如题 Java中的Blowfish对称密钥加密算法类和实例 2个目标文件 内容索引:Java源码,算法相关,Blowfish,JAVA加密,对称密钥算法   JAVA中的Blowfish加密属于对称密钥算法,如果知道密钥,则可以对加密后的数据解密,但如果如果不知道密钥,基本上是不可能的,因此,这就决定了它的先天不足,就是带来的密钥的管理问题。 Java中的SSL及HTTPS协议实例源码 1个目标文件 摘要:Java源码,网络相关,HTTPS协议   Java中的SSL及HTTPS协议实例源码,使用SSL套接字的HTTPS服务器端,接受客户端的一个连接,并返回Hello,world.   本例中使用8080端口创建SSL服务器套接字,返回缺省的SocketFactory对象,生成PrintWriter对象,用于输出信息。 Java自定义光标程序源码 1个目标文件 摘要:Java源码,窗体界面,自定义光标   Java自定义光标程序源码,将光标定义成其它形式的图标,利用ToolKit对象得到图像,实例化自定义光标对象,增加组件等。 Jav动画图标源码(显示GIF图像) 1个目标文件 摘要:Java源码,图形操作,动画图标   Jav动画图标源码(显示GIF图像),学习如何连续加载GIF图像从而生成动画图标,先创建一个用于显示动画图标的数组,创建构造函数,初始化数组,重载组件绘制方法,实例化Timer对象显示动画,增加组件到窗口上。 JSP树型菜单 DTree html+js实现 Notebook源码,Java记事本 2个目标文件 摘要:Java源码,文字字符,Java记事本   Java记事本:Notebook源码下载,虽然是个功能不多的记事本,但通过这个Java程序你可以学习到不少小技巧呢!比如创建界面、安装各种监听器,在窗体上布局主菜单,保存用户编辑的文件,以及如何使用"另存为"对话框保存文件,如何新建和打开一个文档等,源代码内包括了相当多的注释,是Java新手学习JAVA编程的好范例。   当用户按下窗口的“关闭”时,会自动调用此方法。 PDF分割与合并源代码 3个目标文件 能把一个PDF分割成多个单页的PDF,把多个PDF合并成一个PDF。 QR解码的Java实现程序 25个目标文件 内容索引:JAVA源码,媒体网络,QR解码,Java   用Java实现QR解码的源程序代码。 编译原理--LR(1)分析表构造(JAVA) 8个目标文件 如题 传奇私服登录器Java版附源代码 2个目标文件,如题。 单机版java五子棋V1.1 5个目标文件 完整的单机版java五子棋游戏,主要是判定胜负的算法,使用数组进行遍历,很容易理解。 很强的Java加密解密算法源码 3个目标文件 内容索引:Java源码,算法相关,JAVA算法,加密解密   很强的JAVA加密、解密算法源码,一共有6种算法可供选择,另外还可以直接生成ZIP压缩文件。 简单的注册与登录功能 6个目标文件 一个简单的用户登录界面 要连接数据库的 有登陆 注册功能 仅供初学者学习 简单模拟的J2ME潜艇大战源代码 4个目标文件 内容索引:JAVA源码,游戏娱乐,J2ME手机游戏,潜艇大战   简单模拟的J2ME手机游戏潜艇大战的源代码,界面有些粗糙,不过基本功能都实现了,发弹,躲闪等,可以帮助新手提高J2ME技术。 局域网广播系统java源码 如题 java游戏 可实现网上对战和人机对战 7个目标文件 雷电游戏JAVA版源程序 8个目标文件 这是一个简单的Java仿雷电游戏(源码见包内),共设置有三关三个小BOSS。采用有GreenJVM发布,因此可以运行在未装载JRE的Windows系统之上。 网络蚂蚁Java版 14个目标文件 用Java实现的网络蚂蚁,功能强大,方便上传下载,断点续传等操作 网页浏览器 如题 java学生成绩系统(图形界面) 14个目标文件 如题。 java学生课程管理系统 6个目标文件 如题。 一个较初级的EJB商业应用的例子 如题 一个支持servlet的web服务器 14个目标文件 如题。 用Java加密类实现DES、RSA及SHA的加密算法 9个目标文件 如题。 用java写的SFTP代码 用java实现的Tftp(Sftp)客户端与服务器程序。在这个程序中用到了一个“状态”的机制:客户端与服务器端在开始运行时有相同的状态,通过用户的输入或程序内部运行的机制,程序可以转到不同的状态,在不同的状态下程序实现了不同的功能。 用jdom解析xml 1个目标文件 要使用jdom解析xml文件,需要下载jdom的包,我使用的是jdom-1.1。解压之后,将lib文件夹下的.jar文件以及build文件夹下的jdom.jar拷贝到工程文件夹下,然后就可以使用jdom操作xml文件了。 copass源代码 Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架. Compass实现了通过注册Hibernate的相关事件实现了数据的实时索引.. DataBuffer在Java中使用ADO.NET 本源码的作者对ADO.Net有着相当深厚的感情,有着对JAVA中DataBuffer类库运用的出色理解。它是开源项目javadesktop中的一个子项目,通过它你可以真正的理解DataSet、DataTable、DataRow……类库的使用。对这方面不太熟的开发者绝对有帮助。 HAHA CHAT Java仿QQ聊天程序源代码 iCHAT聊天室基于Java 内容索引:JAVA源码,媒体网络,iChat,Java聊天室   iChat LE 1.1版源码,一个比较大型的JAVA版聊天室程序,可能要用到DLL文件,压缩包内已经有了,一年前的程序。 IP定位器 J2ME黑白棋游戏手机版 v2.1完整源码 J2ME冒险游戏CASPER源代码 J2me月光战机游戏源码 JasperReports 报表类库v3.5 Java24点游戏逼真图形版代码 Java 3D魔方游戏源码及中文注释包 内容索引:JAVA源码,游戏娱乐,JAVA3D,魔方游戏   很强的JAVA 3D魔方游戏,这是源码及中文注释包,作者的开发文档和思路都在里面,对学习很有帮助! allin.dev 重载了ListView,更好的实现! copass源代码 Java (Jsp)制作简单的表单程序 java Socket通信实现 Java 版的酒店系统,貌似完整 Java 电梯模拟程序 v2.0 Java 飞机订票 Java 高考信息管理系统 SQL数据库 java 一个消息发布网站 Java+MsSQL超市进销存(毕业设计及答辩资料) Java+sqlserver2000做的员工管理系统 Java+SQL信用卡管理系统源代码 Java+XML日程提醒系统 Java+XML写的RSS阅读器 JAVA版Swing星际争霸游戏源代码 Java半透明图片实现的步骤及源代码 JAVA帮助视图组件库 Help GUI 1.1源代码 Java毕业论文:搜索引擎系统附源代码 JAVA毕业设计_员工管理系统含文档 Java毕业设计一款J2me飞行射击游戏 Java仓库管理系统,Access数据库 Java超市管理,SQL2000+源代码 Java超市进销存系统 Java大型CERP进销存系统 Java电子相册源码 Java赌神游戏网络版源代码 JAVA短信网关平台(值得一看) Java多用户聊天室程序(毕业设计) Java仿Vista界面风格的登录窗口 Java仿千千静听音乐播放器源代码 Java火影忍者游戏源代码 Java机车狂飙源代码 JAVA开发的打字软件源程序 Java开发的简单WEB服务器源码 Java聊天程序(JBuilder) Java聊天软件Visual Chat v1.91源码 Java模仿的MSN聊天软件 Java企业人事管理系统源码 JAVA轻量级的MVC框架应用实例 Java软件度量源码 Java声音播放程序源代码 JAVA实现CLDC与MIDP底层编程的代码 JAVA实现超级玛丽 Java实现的视频播放程序源码 Java手机短信项目源码 Java手机游戏大富翁源代码+注释 Java手机与计算机互发彩信源码 Java坦克大战网络对战版源代码 Java跳棋(基于SWT) Java通讯录手机版源码 Java图片翻折,将图像压扁 Java图书馆管理系统源程序 JAVA图书馆管理系统源码 Java图像文件的缩小与放大 Java推箱子游戏(50关+音效) JAVA网络抓包程序 Java文件切割器源代码 java项目源码在线相册系统 Java写的天气预报软件 Java写的图片幻灯片切换特效 Java写的一个mp3播放器 Java学生信息管理系统源码包 Java用的在线地图浏览模块 Java游戏沙丘城堡源代码 Java游戏中斜视角编辑器及引擎源代码 Java约瑟夫环演示Applet源码 Java中的EJB编程实例代码 Java转换xml JLoading Java版的Mp3下载工具 JSP 动态数据菜单 JSP 学生管理系统(全部代码+数据库) jsp+servlet+javabean+mysql党员信息管理系统 jsp高校科研项目管理系统 JSP开发的项目跟踪系统 jsp生产管理系统 msn聊天程序Java仿真代码 P2P--多用户在线聊天室(Java源码) P2P源码 Azureus 2.5.0.2(JAVA) Skype 4.0 Java版源码及开发文档 SnakeScript Java游戏脚本引擎 v1.1 Tsinghua IP 清华大学学生写的一个有关IP的Java程序 Visualvm 基于JAVA的CPU硬件资源管理器源程序 weblogic+j2ee构建音乐网站(原代码+数据库) web综合教学管理系统 YOYOPlayer 基于Java的网络播放器源代码 宾馆管理系统 餐饮门户 超市购物系统 车间管控 打地鼠游戏 单位固定资产登记管理系统JAVA版 电子书店管理系统 分离SQL Server数据库 基于BS结构的Java可视化工作流定制软件 基于J2ME的Java游戏梦幻炸弹人源程序 基于JAVA的ICQ系统 基于Java的mp3播放器源代码 基于JAVA的日程提醒簿 基于Java的小型人事管理系统,带数据库 基于Java的邮件服务器源程序 基于MVC的Java资源管理器 v2.0 季风进销存管理系统(JSP版) 家庭多媒体播放器 开源Winzip压缩工具Java版源码 客户管理系统 Alfresco Content Management 乐趣大型购物系统 类似QQ的聊天软件JAVA版源码(附设计文档) 连接postsql数据库的java代码 泡泡堂战车游戏JAVA版源码 配置ODBC数据源 企业进销存管理系统 轻松商城系统 手机游戏J2ME毕业设计 书籍管理系统 网络电视源代码TV-Browser 蜀山剑侠传游戏J2ME手机版源代码 网上书店 物业管理系统毕业设计+源码 销售预测系统PDP系统 选修课程管理系统V1.2.3 阳光酒店管理系统 一款Java网络格斗游戏源码 用iText类库制作PDF文档 用JAVA做的聊天软件,有安装程序和源代码 在Servlet中连接数据库的Java代码 中国移动业务管理系统源码(SSH框架)
"5.1 管理员功能实现 5.1.1 论坛管理 该功能主要用于实现对论坛帖子基本信息的管理,论坛管理界面的运行效果见图5.1。 在此界面,管理员不仅需要跟踪论坛帖子,比如查看论坛帖子的回复,删除论坛帖子的回复信息 等,修改论坛帖子的内容,删除需要删除的论坛帖子信息等。 该功能主要用于实现对商品信息基本信息的管理,商品管理界面的运行效果见图5.2。 在此界面,对商品的类型,商品原价,商品库存,商品名称等信息都需要管理员负责添加和修改 ,同时还需要对商品的库存进行管理,比如增加商品的库存,或者是对商品库存进行减少以及对销量不好的商品进行下架,对新的商品进行上架等操作。 该功能主要用于实现对商品评价基本信息的管理,商品评价管理界面的运行效果见图5.3。 在此界面,商品的评价内容,以及评价用户和评价的商品等信息都能让管理员查看,同时管理员也能对评价商品的用户进行回复。 该功能主要用于实现对商品订单基本信息的管理,商品订单管理界面的运行效果见图5.4 。在此界面,管理员主要处理已经销售的商品信息,即商品订单信息,管理员需要对用户刚刚支 付的商品订单进行及时发货,以及对各个商品订单的更多的详细信息进行认真查看。 该功能主要用于实现对商品资讯基本信息的管理,商品资讯管理界面的运行效果见图5.5。在 此界面,商品资讯的内容以及图片等信息都是管理员负责登记的信息,也包括后期对商品资讯信息的针对性修改和删除等都是管理员负责的内容。 商品信息界面的运行效果见图5.6。在此界面,用户可以查看商品信息界面展示的商品相关视频 ,以及通过对商品的相关介绍信息来了解商品,用户如果有购买的需求,可以通过立即购买功能立即下单。 确认下单界面的运行效果见图5.7。在此界面,用户不仅需要确认收货地址是否正确,还需要确认 需要购买的商品的数量以及商品信息是否正确,最后查看实付金额信息,然后进行下单。 商品订单界面的运行效果见图5.8。在此界面展示的信息都是用户购买商品之后产生的信息,用 户不仅可以查看信息,还可以根据自身实际情况对商品订单进行相应操作,包括退款或评价等。 购物车界面的运行效果见图5.9。在此界面,用户可以统一处理购物车里面的商品信息,比如修 改各个商品的购买数量,可以增加购买数量,也能减少购买数量,或者是清理一些不需要购买的 商品信息,最后查看支付金额,然后统一下单。 在线论坛界面的运行效果见图5.10。在此界面,用户对在线论坛展示的帖子进行查看,每个论 坛帖子都允许用户查看后提交评论信息。在在线论坛的界面,用户点击右上角的发帖链接即可发布自己的帖子。"
要在Java中模糊背景,可以使用Java 2D API中的`Graphics2D`类。具体步骤如下: 1. 创建一个`BufferedImage`对象,将要绘制的背景图像绘制到该对象上。 2. 使用`java.awt.image.Kernel`类创建一个模糊卷积核,可以通过调整卷积核的大小和值来控制模糊程度。 3. 使用`java.awt.image.ConvolveOp`类创建一个卷积操作对象,并将卷积核作为参数传入。 4. 使用卷积操作对象对`BufferedImage`对象进行滤波操作,得到模糊后的图像。 5. 将模糊后的图像绘制到目标组件的`Graphics`对象上。 下面是一个简单的示例代码,可以将指定的背景图像模糊并绘制到`JPanel`组件上: ```java import java.awt.*; import java.awt.image.*; import javax.swing.*; public class BlurredBackgroundPanel extends JPanel { private BufferedImage background; public BlurredBackgroundPanel(Image background) { this.background = toBufferedImage(background); } private static BufferedImage toBufferedImage(Image img) { if (img instanceof BufferedImage) { return (BufferedImage) img; } BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = bimage.createGraphics(); g2d.drawImage(img, 0, 0, null); g2d.dispose(); return bimage; } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g.create(); // 创建模糊卷积核 float[] blurKernel = { 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f }; Kernel kernel = new Kernel(3, 3, blurKernel); // 创建卷积操作对象 ConvolveOp op = new ConvolveOp(kernel); // 对背景图像进行滤波操作 BufferedImage blurred = op.filter(background, null); // 绘制模糊后的背景图像 g2d.drawImage(blurred, 0, 0, getWidth(), getHeight(), null); g2d.dispose(); } public static void main(String[] args) { JFrame frame = new JFrame("Blurred Background Panel"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // 加载背景图像 Image background = new ImageIcon("background.jpg").getImage(); // 创建模糊背景面板 BlurredBackgroundPanel panel = new BlurredBackgroundPanel(background); frame.setContentPane(panel); frame.setVisible(true); } } ``` 在上面的示例代码中,我们创建了一个名为`BlurredBackgroundPanel`的自定义`JPanel`组件,它可以将指定的背景图像模糊并绘制到自身上。在`paintComponent`方法中,我们创建了一个`Graphics2D`对象,并通过模糊卷积核和卷积操作对象对背景图像进行了滤波操作,得到了模糊后的图像。最后,我们将模糊后的图像绘制到了目标组件的`Graphics`对象上。 需要注意的是,模糊操作是比较耗时的,如果需要实时模糊显示,可能需要使用多线程或GPU加速等技术来提高性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值