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

posted @ 2014-11-12 12:03  chenjsh36  阅读(1216)  评论(0编辑  收藏  举报