zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Jenkins job 之间实现带参数触发
    svn hooks post-commit钩子自动部署
    Ubuntu PPA软件源
    图片文字OCR识别-tesseract-ocr
    scala 学习笔记十 元组
    scala 学习笔记九 定义操作符
    scala 学习笔记八 简洁性
    scala 学习笔记七 基于类型的模式匹配
    scala 学习笔记六 推导
    scala 学习笔记五 foreach, map, reduce
  • 原文地址:https://www.cnblogs.com/2014-cjs/p/4007115.html
Copyright © 2011-2022 走看看