📄 fuzzy_identity_frame.java~118~
字号:
package fuzzy_identity;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.util.*;class point //点类{ int x,y; //点的x和y坐标 point(int a,int b) {x=a;y=b;}}class Image_jpanel extends JPanel //画板{ private Vector vp=null; private point p1,p2; private int count; private boolean clear_sign=false; //清除画板内容标记 public void vec(Vector v) { vp=v; } public void cle(boolean c_s) { clear_sign=c_s; } public void paint(Graphics g) //实现在画板上画线 { g.setColor(Color.yellow); g.fillRect(0,0,100,100); g.setColor(Color.red); g.drawLine(0,49,99,49); g.drawLine(49,0,49,99); g.drawLine(20,54,20,45); g.drawLine(80,54,80,45); g.drawLine(54,20,45,20); g.drawLine(54,80,45,80); g.setColor(Color.black); if(vp==null) count=0; else count=vp.size(); if(!clear_sign) { for(int i=0;i<count-1;i++) { p1=(point)vp.elementAt(i); p2=(point)vp.elementAt(i+1); if(p2.x==-1&&p2.y==-1) { continue; } if(p1.x==-1&&p1.y==-1) { continue; } g.drawLine(p1.x,p1.y,p2.x,p2.y); } } else { g.clearRect(0,0,100,100); //清除画板内容 g.setColor(Color.yellow); g.fillRect(0,0,100,100); g.setColor(Color.red); g.drawLine(0,49,99,49); g.drawLine(49,0,49,99); g.drawLine(20,54,20,45); g.drawLine(80,54,80,45); g.drawLine(54,20,45,20); g.drawLine(54,80,45,80); clear_sign=false; } }}public class Fuzzy_Identity_Frame extends JFrame { JPanel contentPane; Image_jpanel image_jpanel; XYLayout xYLayout1 = new XYLayout(); point p,sign; int x,y; Vector v; boolean clear; Image_Identity ii; JButton start_jButton = new JButton(); JButton repaint_jButton = new JButton(); //Construct the frame public Fuzzy_Identity_Frame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { x=y=0; v=new Vector(); sign=new point(-1,-1); //画线中断标记值 clear=false; contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(xYLayout1); this.setResizable(false); this.setSize(new Dimension(300, 200)); this.setTitle("模糊识别"); image_jpanel=new Image_jpanel(); image_jpanel.addMouseMotionListener(new Fuzzy_Identity_Frame_image_jpanel_mouseMotionAdapter(this)); image_jpanel.addMouseListener(new Fuzzy_Identity_Frame_image_jpanel_mouseAdapter(this)); start_jButton.setEnabled(false); start_jButton.setText("开始识别"); start_jButton.addActionListener(new Fuzzy_Identity_Frame_start_jButton_actionAdapter(this)); repaint_jButton.setText("重画"); repaint_jButton.addActionListener(new Fuzzy_Identity_Frame_repaint_jButton_actionAdapter(this)); contentPane.add(image_jpanel,new XYConstraints(100, 20, 100, 100)); contentPane.add(start_jButton, new XYConstraints(55, 133, -1, -1)); contentPane.add(repaint_jButton, new XYConstraints(160, 133, 73, -1)); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void image_jpanel_mouseDragged(MouseEvent e) { //画画进行中 x=e.getX(); y=e.getY(); if(x<0) //越界处理 x=0; if(y<0) y=0; if(x>=100) x=99; if(y>=100) y=99; p=new point(x,y); v.addElement(p); image_jpanel.vec(v); image_jpanel.repaint(); } void image_jpanel_mousePressed(MouseEvent e) { //开始画画 x=e.getX(); y=e.getY(); if(x<0) //越界处理 x=0; if(y<0) y=0; if(x>=100) x=99; if(y>=100) y=99; p=new point(x,y); v.addElement(p); image_jpanel.vec(v); image_jpanel.repaint(); } void image_jpanel_mouseReleased(MouseEvent e) { //画画中断 v.addElement(sign); start_jButton.setEnabled(true); } void repaint_jButton_actionPerformed(ActionEvent e) { //清除画板内容 v.clear(); clear=true; image_jpanel.cle(clear); image_jpanel.repaint(); start_jButton.setEnabled(false); } void start_jButton_actionPerformed(ActionEvent e) { //开始图像识别 ii=new Image_Identity(v); //把点集合传递给Image_Identity对象 ii.a(); //调用Image_Identity对象方法进行模糊识别 start_jButton.setEnabled(true); }}class Fuzzy_Identity_Frame_image_jpanel_mouseMotionAdapter extends java.awt.event.MouseMotionAdapter { Fuzzy_Identity_Frame adaptee; Fuzzy_Identity_Frame_image_jpanel_mouseMotionAdapter(Fuzzy_Identity_Frame adaptee) { this.adaptee = adaptee; } public void mouseDragged(MouseEvent e) { adaptee.image_jpanel_mouseDragged(e); }}class Fuzzy_Identity_Frame_image_jpanel_mouseAdapter extends java.awt.event.MouseAdapter { Fuzzy_Identity_Frame adaptee; Fuzzy_Identity_Frame_image_jpanel_mouseAdapter(Fuzzy_Identity_Frame adaptee) { this.adaptee = adaptee; } public void mousePressed(MouseEvent e) { adaptee.image_jpanel_mousePressed(e); } public void mouseReleased(MouseEvent e) { adaptee.image_jpanel_mouseReleased(e); }}class Fuzzy_Identity_Frame_repaint_jButton_actionAdapter implements java.awt.event.ActionListener { Fuzzy_Identity_Frame adaptee; Fuzzy_Identity_Frame_repaint_jButton_actionAdapter(Fuzzy_Identity_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.repaint_jButton_actionPerformed(e); }}class Fuzzy_Identity_Frame_start_jButton_actionAdapter implements java.awt.event.ActionListener { Fuzzy_Identity_Frame adaptee; Fuzzy_Identity_Frame_start_jButton_actionAdapter(Fuzzy_Identity_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.start_jButton_actionPerformed(e); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -