这个图案用Javajava接口怎么写写出来?

JAVA图形界面编程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
JAVA图形界面编程
上传于||暂无简介
大小:803.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢Eclipse的图形界面是用Java写的吗?
[问题点数:80分,结帖人Maddox_csdn]
Eclipse的图形界面是用Java写的吗?
[问题点数:80分,结帖人Maddox_csdn]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。用java的swing写了个图片标注工具
功能说明:
1 鼠标单击:选取裁剪区域
2 鼠标双击:选取裁剪区域,并把裁剪区域保存为文件,同时把区域中心点的坐标保存
3 打开图片:从某个文件夹打开图片并显示,同时把该目录的所有图片的路径载进来。这个功能主要是针对这么种情况,
假如处理某个文件夹的图片集,在某一张终止了或者暂停了,下一次要从这种图片开始。vcD4KPHA+NCCxo7Tm1/ix6qO6sNGyw7z0x/jT8rGjtObOqs7EvP6jrM2syrGw0cf40/LW0NDEteO1xNf4seqxo7TmPC9wPgo8cD41ILTyv6rEv8K8o7qw0bjDxL/CvLXEy/nT0M28xqy1xMK3vrbU2L34wLShozwvcD4KPHA+NiDPwtK71cWjutW5yr7PwtK71cXNvMasoaM8L3A+CjxwPjxicj4KPC9wPgo8cD6zo7z708O3qKO6PC9wPgo8cD4xIKGwtPK/qsS/wryhsaOs1eLKsbvhvavEv8K8zbzGrNTYvfjAtKOssqLP1Mq+tdrSu9XFo6zV4srHv8nS1CChsMrzserLq7v3obGjrNGhyKG4w9XFzbzGrLXEssO89Mf40/KjrLGjtObX+LHqus2yw7z0x/jT8qOssqLVucq+z8LSu9XFoaM8L3A+CjxwPjIgvNnI59PDt6gx1NrEs9K71cXNvMas1N3No8HLo6yxyMjnudix1bjDs8zQ8qGjz8K0zr/J0tTA+9PDobC08r+qzbzGrKGxtNPEs9XFzbzGrL+qyryjrMi7uvO8zND4wPvTw6GwyvOx6suru/ehsdK71cXSu9XFtKbA7aGjPC9wPgo8cD48YnI+CjwvcD4KPHA+16KjusbkyrWwtMWlobCxo7Tm1/ix6qGxus2hsM/C0rvVxaGx1rvKx9f3zqq5psTcsuLK1Mq508OjrMq1vMqy2df3v8nS1NPDobDK87Hqy6u796GxtPrM5qGjPC9wPgo8cD48YnI+CjwvcD4KPHA+z8LD5ri9yc/UtLT6wuujujwvcD4KPHA+PGJyPgo8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:">import java.awt.BorderL
import java.awt.C
import java.awt.C
import java.awt.D
import java.awt.FlowL
import java.awt.G
import java.awt.GridL
import java.awt.I
import java.awt.T
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.KeyE
import java.awt.event.KeyL
import java.awt.event.MouseA
import java.awt.event.MouseE
import java.awt.image.BufferedI
import java.awt.image.CropImageF
import java.awt.image.FilteredImageS
import java.awt.image.ImageF
import java.io.BufferedW
import java.io.F
import java.io.FileNotFoundE
import java.io.FileOutputS
import java.io.IOE
import java.io.OutputStreamW
import java.util.ArrayL
import java.util.C
import javax.imageio.ImageIO;
import javax.swing.JB
import javax.swing.JFileC
import javax.swing.JF
import javax.swing.JP
import javax.swing.JScrollP
import javax.swing.filechooser.FileNameExtensionF
public class PhotoFrame extends JFrame
private static final long serialVersionUID = -9107707L;
private MousePanel zP
private JScrollPane imgSp;
private JPanel btnP
private String imageD
private String currI//文件名,不包含目录
private int currI//当前图片索引
ArrayList imgL//所有图片的绝对路径
public void
writeCropImg() throws IOException
BufferedImage sourceImage = (BufferedImage) zPanel.getImg();
Image croppedI
ImageFilter cropF
int x = zPanel.getPointX()-25;
int y = zPanel.getPointY()-25;
//四个参数分别为图像起点坐标和宽高,即CropImageFilter(int x,int y,int width,int height),详细情况请参考API
//指定要裁剪的的文件的宽度和高度,以及起始坐标
cropFilter =new CropImageFilter(x,y,50,50);
//生成图片
croppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));
//获取创建后的图片的高度
int h1=croppedImage.getHeight(null);
int w1=croppedImage.getWidth(null);
BufferedImage bi=new BufferedImage(w1,h1,BufferedImage.TYPE_INT_RGB);
Graphics g=bi.getGraphics();
//在画图的时候可以设置背景色
g.drawImage(croppedImage,0,0,Color.white,null);
String dir = imageDir+"_crops";
//创建文件输出流
FileOutputStream fos=new FileOutputStream(new File(dir+"/"+currImg));
//将创建的图片写入到输出流
ImageIO.write(bi, "png", fos);
fos.close();
private void showNext()
updateCurrName();
zPanel.setImagePath(imgList.get(currIndex));
currIndex++;
private void updateCurrName()
String path = imgList.get(currIndex);
int index = path.lastIndexOf('/');
currImg = path.substring(index);
private class nextHandler implements ActionListener
public void actionPerformed(ActionEvent e)
showNext();
private class openDirHandler implements ActionListener
public void actionPerformed(ActionEvent e)
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//设置只能选择目录
int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION)
imageDir =chooser.getSelectedFile().getPath();
imgList = FileTool.refreshFileList(imageDir);
currIndex = 0;
showNext();
//System.out.println ( "你选择的目录是:" + selectPath );
//你选择的目录是:/home/linger/imdata/collar
private void savePointAndImg()
String dir = imageDir+"_points";
int x = zPanel.getPointX();
int y = zPanel.getPointY();
//打开文件
File f=new File(dir+"/");
if(!f.exists())
f.mkdir();
f=new File(dir+"/"+currImg);
if(!f.exists())
f.createNewFile();
FileOutputStream fos=new FileOutputStream(f);
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");
BufferedWriter bw=new BufferedWriter(osw);
//写入文件
bw.write(x+","+y);
//关闭文件
bw.close();
osw.close();
fos.close();
writeCropImg();
catch (IOException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
private class savePointHandler implements ActionListener
public void actionPerformed(ActionEvent e)
savePointAndImg();
private class openImageHandler implements ActionListener
public void actionPerformed(ActionEvent e)
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & PNG Images", "jpg", "png");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION)
File file = chooser.getSelectedFile();
imageDir = file.getParent();
imgList = FileTool.refreshFileList(imageDir);
currImg = file.getName();//文件名,不包含路径
// System.out.println();
String path = file.getAbsolutePath();
currIndex = imgList.indexOf(path);
zPanel.setImagePath(path);
currIndex++;
//内部类访问外部类,可以直接访问的啊
private PhotoFrame()
con = getContentPane();
con.setLayout(new GridLayout(2,2));
zPanel = new MousePanel();
//zPanel.setImagePath("/home/linger/17820d01");//绑定图片
//zPanel.setPreferredSize(new Dimension(zPanel.getImgWidth(), zPanel.getImgHeight()));
imgSp = new JScrollPane();
imgSp.setPreferredSize(new Dimension(zPanel.getImgWidth(), zPanel.getImgHeight()));
imgSp.setViewportView(zPanel);
imgSp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
imgSp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//con.add(imgSp, BorderLayout.CENTER);
con.add(imgSp);
= new JPanel();
btnPanel.setLayout(new FlowLayout());
btnPanel.setSize(300,100);
JButton button = new JButton("打开图片");
button.setSize(100, 50);
btnPanel.add(button);
button.addActionListener(new openImageHandler());
button = new JButton("保存坐标");
button.setSize(100, 50);
btnPanel.add(button);
button.addActionListener(new savePointHandler());
button = new JButton("打开目录");
button.setSize(100, 50);
btnPanel.add(button);
button.addActionListener(new openDirHandler());
button = new JButton("下一张");
button.setSize(100, 50);
btnPanel.add(button);
button.addActionListener(new nextHandler());
con.add(btnPanel);
zPanel.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
if(e.getClickCount() == 2)
savePointAndImg();
showNext();
finalSetting();
private void finalSetting()
setTitle("标注工具");
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.
int screenWidth = screenSize.
int frameH = getHeight();
int frameW = getWidth();
setLocation((screenWidth - frameW) / 2 - 250,
(screenHeight - frameH) / 2 - 250);
setSize(800, 600);
//setSize(zPanel.getImgWidth()+10, zPanel.getImgHeight()+10);
//setPreferredSize(new Dimension(zPanel.getImgWidth()+100, zPanel.getImgHeight()+100));
setVisible(true);
setResizable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public static void main(String[] args)
new PhotoFrame();
import java.awt.G
import java.awt.I
import java.awt.image.ImageF
import java.io.FileInputS
import java.io.FileNotFoundE
import java.io.IOE
import javax.imageio.ImageIO;
public class ImgPanel extends javax.swing.JPanel
private static final long serialVersionUID = 1L;
private int imgW
private int imgH
public Image getImg()
public int getImgWidth()
return imgW
public void setImgWidth(int imgWidth)
this.imgWidth = imgW
public int getImgHeight()
return imgH
public void setImgHeight(int imgHeight)
this.imgHeight = imgH
public ImgPanel()
public void setImagePath(String imgPath) {
// 该方法不推荐使用,该方法是懒加载,图像并不加载到内存,当拿图像的宽和高时会返回-1;
// image = Toolkit.getDefaultToolkit().getImage(imgPath);
// 该方法会将图像加载到内存,从而拿到图像的详细信息。
image = ImageIO.read(new FileInputStream(imgPath));
//读取图片的大小
setImgWidth(image.getWidth(this));
setImgHeight(image.getHeight(this));
this.repaint();
catch (FileNotFoundException e)
e.printStackTrace();
} catch (IOException e)
e.printStackTrace();
public void paintComponent(Graphics g1)
super.paintComponent(g1);
int x = 0;
int y = 0;
Graphics g = (Graphics) g1;
if (null == image)
g.drawImage(image, x, y, image.getWidth(this), image.getHeight(this),
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MousePanel extends ImgPanel//JPanel
int x_pos,y_
public int getPointX()
public int getPointY()
public MousePanel()
addMouseListener(new MouseListener()
//mouseClicked():鼠标单击
public void mouseClicked(MouseEvent e)
x_pos=e.getX();
y_pos=e.getY();
repaint();
//mouseEntered():鼠标进入时
public void mouseEntered(MouseEvent e)
//mouseExited():鼠标离开时
public void mouseExited(MouseEvent e)
//mousePressed():鼠标按下去
public void mousePressed(MouseEvent e)
//mouseReleased():鼠标松开时
public void mouseReleased(MouseEvent e) {}
addMouseMotionListener(new MouseMotionListener()
public void mouseMoved(MouseEvent e)
public void mouseDragged(MouseEvent e){}
public void paintComponent(Graphics g)
super.paintComponent(g);
//g.drawString("current location is:["+x_pos+","+y_pos+"]",x_pos,y_pos);//在界面上显示
//System.out.printf("current location is:["+x_pos+","+y_pos+"]\n",x_pos,y_pos);//在控制台显示
g.setColor(Color.RED);
g.drawRect(x_pos-25, y_pos-25, 50, 50);
//g.fillOval(x_pos,y_pos,8,8);
import java.io.F
import java.util.ArrayL
public class FileTool {
public static ArrayList refreshFileList(String strPath)
ArrayList filelist = new ArrayList();
File dir = new File(strPath);
File[] files = dir.listFiles();
if (files == null)
for (int i = 0; i < files. i++)
if (files[i].isDirectory())
refreshFileList(files[i].getAbsolutePath());
String strFileName = files[i].getAbsolutePath().toLowerCase();
//System.out.println(strFileName);
filelist.add(files[i].getAbsolutePath());
public static void main(String[] args)
// TODO Auto-generated method stub
test = refreshFileList("/home/linger/imdata/collar");
System.out.println(test.get(668));
System.out.println(test.get(669));
System.out.println(test.get(670));
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 java输入语句怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信