java 图像处理小软件(界面+图像处理)

一、界面学习

    用java实现一个简易计算器(代码)如下:

      

  1 /*CJSCalculator.java 2014.8.4 by cjs
  2  *当点击含有加号的按钮时,则第一排第二个按钮的文本变为加号;
  3  *当点击“OK”按钮时,将算出12+2的结果并在第一排最后一个按钮显示;
  4  *减号,乘号,除号的功能类似。其中,数字可以自己输入,也可以固定不变。
  5  *以上是简单的版本,如果有能力可以设计出更好更完善的计算器。
  6 **/
  7
  8 import java.awt.*;
  9 import javax.swing.*;
 10 import java.awt.event.*;
 11 public class CjsCalculator extends JFrame implements ActionListener {
 12     /* 继承Jframe 实现 ActionListener 接口*/
 13
 14         //协助关闭窗口
 15         private class WindowCloser extends WindowAdapter {
 16         public void windowClosing(WindowEvent we) {
 17             System.exit(0);
 18         }
 19     }
 20     //strings for operator buttons.
 21
 22     private String[] str = { "+", "-", "*", "/", "OK"};
 23
 24     //build buttons.
 25
 26     JButton[] Obuttons = new JButton[str.length];
 27         //reset button
 28     JButton Rbutton = new JButton("reset");
 29
 30         //build textfield to show num and result
 31
 32     private JTextField display = new JTextField("0");
 33     private JTextField Fnum = new JTextField("");
 34     private JTextField Snum = new JTextField("");
 35     private JTextField Otext = new JTextField("");
 36     private JTextField Deng = new JTextField("=");
 37
 38     int i = 0;
 39
 40     //构造函数定义界面
 41     public CjsCalculator() {
 42
 43         Deng.setEditable(false);
 44         display.setEditable(false);
 45     Otext.setEditable(false);
 46     //super 父类
 47     //    super("Calculator");
 48
 49         //panel 面板容器
 50         JPanel panel1 = new JPanel(new GridLayout(1,5));
 51         for (i = 0; i < str.length; i++) {
 52             Obuttons[i] = new JButton(str[i]);
 53                 Obuttons[i].setBackground(Color.YELLOW);
 54             panel1.add(Obuttons[i]);
 55         }
 56
 57         JPanel panel2 = new JPanel(new GridLayout(1,5));
 58         panel2.add(Fnum);
 59         panel2.add(Otext);
 60         panel2.add(Snum);
 61         panel2.add(Deng);
 62         panel2.add(display);
 63
 64         JPanel panel3 = new JPanel(new GridLayout(1,1));
 65         panel3.add(Rbutton);
 66                 //初始化容器
 67         getContentPane().setLayout(new BorderLayout());
 68         getContentPane().add("North",panel2);
 69         getContentPane().add("Center",panel1);
 70         getContentPane().add("South",panel3);
 71         //Add listener for Obuttons.
 72         for (i = 0; i < str.length; i++)
 73             Obuttons[i].addActionListener(this);
 74
 75         display.addActionListener(this);
 76             Rbutton.addActionListener(this);
 77         setSize(8000,8000);//don‘t use ???
 78
 79         setVisible(true);//???
 80                 //不可改变大小
 81                 setResizable(false);
 82         //初始化容器
 83         pack();
 84     }
 85
 86         //实现监听器的performed函数
 87     public void actionPerformed(ActionEvent e) {
 88                 Object happen = e.getSource();
 89         //
 90         String label = e.getActionCommand();
 91
 92         if ("+-*/".indexOf(label) >= 0)
 93             getOperator(label);
 94         else if (label == "OK")
 95             getEnd(label);
 96         else if ("reset".indexOf(label) >= 0)
 97              // display.setText("reset");
 98                       resetAll(label);
 99     }
100         public void resetAll(String key) {
101             Fnum.setText("");
102         Snum.setText("");
103         display.setText("");
104         Otext.setText("");
105     }
106     public void getOperator(String key) {
107         Otext.setText(key);
108     }
109
110     public void getEnd(String label) {
111                 if( (countDot(Fnum.getText()) > 1) || (countDot(Snum.getText())>1) || (Fnum.getText().length()==0) ||                        (Snum.getText().length() == 0)) {
112                     display.setText("error");
113                 }
114         else if(checkNum(Fnum.getText())==false || checkNum(Snum.getText())==false){
115                 display.setText("error");
116              }
117         else {
118                 double Fnumber = Double.parseDouble(Fnum.getText().trim());
119             double Snumber = Double.parseDouble(Snum.getText().trim());
120             if (Fnum.getText() != "" && Snum.getText() != "") {
121                    if (Otext.getText().indexOf("+") >= 0) {
122                     double CjsEnd = Fnumber + Snumber;
123                     display.setText(String.valueOf(CjsEnd));
124                 }
125                                 else if (Otext.getText().indexOf("-")>=0) {
126                                        double CjsEnd = Fnumber - Snumber;
127                                         display.setText(String.valueOf(CjsEnd));
128                                 }
129                         else if (Otext.getText().indexOf("*")>=0) {
130                                         double CjsEnd = Fnumber * Snumber;
131                                            display.setText(String.valueOf(CjsEnd));
132                                 }
133                                 else if (Otext.getText().indexOf("/")>=0) {
134                                         double CjsEnd = Fnumber / Snumber;
135                                         display.setText(String.valueOf(CjsEnd));
136                                 }
137                 else
138                     display.setText("error");
139
140             }
141             else
142                 display.setText("num is null");
143                 }
144
145     }
146         public int countDot(String str) {
147         int count = 0;
148         for (char c:str.toCharArray()) {
149             if (c == ‘.‘)
150                 count++;
151         }
152         return count;
153         }
154         public boolean checkNum(String str) {
155            boolean tmp = true;
156         for (char c:str.toCharArray()) {
157             if (Character.isDigit(c) || (c == ‘.‘));
158             else {
159                 tmp = false;
160                 break;
161             }
162         }
163         return tmp;
164         }
165     public static void main(String[] args) {
166         new CjsCalculator();
167     }
168 }    

终端运行该java文件,结果如图所示: 

二、图像处理学习

三、设计与实验

  参考地址:http://www.cnblogs.com/lazygunner/articles/2130920.html

java swing 滑块学习:http://wenku.baidu.com/link?url=gRR_aCztY4YxgbSSHp1SOho9JRIxBkb3Mjex0sALB-QCMuFViOECA_73_peP1kY2_f4GQedE-VvaLngfhh5-s6l8UOLNjZt5z4DEPNqqThC

java 打包成可执行程序:http://tieba.baidu.com/p/2629220128

java 直方图均衡化和中值滤波学习:http://blog.csdn.net/vincentzhao2009/article/details/4565323

http://www.java3z.com/cwbwebhome/article/article5/51394.html?id=4727

http://blog.csdn.net/jia20003/article/details/8119563

http://blog.sina.com.cn/s/blog_62671c580100kzfi.html

http://zh.wikipedia.org/wiki/%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96

http://blog.sina.com.cn/s/blog_6e7e94bc0100o9lr.html

http://blog.sina.com.cn/s/blog_62671c580100kzfi.html

http://blog.sina.com.cn/s/blog_7d44748b0100won1.html

时间: 2024-09-28 04:13:05

java 图像处理小软件(界面+图像处理)的相关文章

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,

【小软件】年度优秀员工

部门快要年会了,最近做了个小软件,“年度优秀员工”apk. 需求:部门的七个小组每组推荐两名候选人,部门所有员工投票选出七名优秀员工.每人必须选不是同一组的两人,不能多选或者少选,必须是本部门的员工才有资格选,选定两个后最终本软件以短信的形式向同一个手机号发送过去,最终通过短信数据库导出表格,统计即可. 实现界面如下: 代码如下: activity_main.xml 1 <TableLayout xmlns:android="http://schemas.android.com/apk/r

一款好用的视频转换gif的小软件——抠抠视频秀

在平常生活中,我们拍下来精彩的视频想要转换为gif动画,或是想要录制网页上的视频.电脑上的鼠标操作等等,大家可以使用以下这款很好用的视频转换gif的小软件——抠抠视频秀,这个软件操作简单方便现在推荐给大家. 1.首先我们运行“抠抠视频秀”软件,界面如下,上面是操作按键区,中间是透明的窗体(后面的向日葵是我的电脑壁纸),下面是信息提示. 2.然后我现预设一下,点击“更多”按键.选择“抓取视频的频率”---“15帧/秒”(这个数值越大,GIF录制的越完整):选择“生成GIF文件的帧频”----“选这

Android有感(9):10.使用XML文件和Java代码控制UI界面

Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 我们可以在app\src\main\res\layout目录下定义一个XML文件(R.java文件会自

java之图形化界面(GUI)

一.概述 用户与计算机进行交换的方式有两种: GLI:Command lin User Interface(命令行用户接口),也就是常见的dos窗口,它需要记住一些常用的命令,操作不直观方便. GUI:Graphical User Interface(图形用户接口),用图形的方式,来显示计算机操作的界面,这样更方便直观. 这两种交换方式就对应两种交互界面:命令行界面和图形化界面. 现在图形化界面是主流. Java为GUI提供的对象都在java.awt和javax.swing这两个包中. Awt和

Java中轻松实现界面跳转

作者:兄弟连Java中轻松实现界面跳转,Java中轻松实现界面跳转 假设这样一种情况,我们的系统的界面使用javax.swing包构建,界面的基础是BaseView,他是一个容器,当然他应当提供获取控件元素的功能,比如得到按钮,下拉框,表格等,当然仅仅是一个容器而已,而我们的界面的元素全部部署在JPanel上. 描述为: 一个界面就是一个BaseView,他只包含一个JPanel,这个包含JPanel包含所有我们的Swing控件,例如JButton,JLable等等. 问题出现了:我们通常因为业

记一次【模拟点击】,WinForm小软件开发过程

前言 年初四月份的时候,有朋友找到我,说想开发一个模拟点击的软件.最终软件做完后,发现效果不理想.唯一开发的我是认为最好是放弃了,做运营的他,坚持说这个没问题,说是改变合作方式.最终也是不了了之了. 不过,在这中间经历了一次重写,三次核心方法的变更,无数次的查资料,找解决办法至凌晨.中间穿插了无数次的讨论修改,修改讨论.虽然功能很简单,但是也花费了三个月的心血.心想,还是想好好总结一下.最后的软件界面如下: 实现思路&使用控件 首先,在内置浏览器里面打开网页,通过Javascript 获取需要的

推荐一款我在用的PC健康小软件

这是一款每天会默默保护你眼睛健康的小软件(几百KB),它能随着一天的时间变化自动调整你电脑显示器屏幕的色温,从而尽可能减少屏幕对眼睛所带来的疲劳感. f.lux 的设定在中午12点时是色温高潮点,午夜12点是色温低谷点.简单的说,也就是说白天冷色调,夜晚暖色调.官网还提供了据说很专业研究报告,用数据与事实来证明 4600k 到 5000k 的暖色温确实有此功效.不过这里要注意一点的是:首先你得设置你的location, f.lux默认是用Google地图搜索的,如果你Google不行的话可以查下

AUTOIT做的小软件

首先说明,本人不是计算机人员,而是一名财务人员.只是爱好编程.因此自学了C,C++,C#,VBA,Autoit等简单的语法.也能用这些编程语言通过VS(MFC,VC#),QT,Excel等写一些简单的程序(请见我的下载资源).这些程序有的是为了熟悉编程流程比如简单版的计算器(c++->MFC),有些是提高工作效率的小工具比如(EXCEL自动匹配程序,银行对账工具).其中最好用的,可以真正称得上软件的居然是AUTOIT写的一个会计上的AR清帐对账方面,SAP等ERP软件根本不能满足要求,因为称得上