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

你可能感兴趣的:(java)