⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xinhaobianma.java

📁 实现了网络信号的直接编码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
class Fframe extends WindowAdapter{
	Frame frame;
	TextField text;
	Button init,sure,reset,z_sure,z_reset,m_sure,m_reset,c_sure,c_reset;
	Panel p11,p21,p31;
	Graphics g11,g21,g31;
      
	public void createFrame(){
		frame=new Frame("信号的编码");
		frame.setSize(600,550);
		frame.setLocation(50,100);
		frame.setBackground(Color.lightGray);
		
		text=new TextField(30);
		init=new Button("版面初始化");sure=new Button("编码");reset=new Button("重置二进制信号码");
		z_sure=new Button("         直接编码       ");z_reset=new Button("重置");
		m_sure=new Button("    曼彻斯特编码   ");m_reset=new Button("重置");
		c_sure=new Button("差分曼彻斯特编码");c_reset=new Button("重置");
		
		init.addActionListener(new Init());
		sure.addActionListener(new BianMa());
		reset.addActionListener(new BianMa());
		z_sure.addActionListener(new z_BianMa());
		z_reset.addActionListener(new z_BianMa());
		m_sure.addActionListener(new m_BianMa());
		m_reset.addActionListener(new m_BianMa());
		c_sure.addActionListener(new c_BianMa());
		c_reset.addActionListener(new c_BianMa());
		
		text.setEnabled(false);sure.setEnabled(false);
		reset.setEnabled(false);z_sure.setEnabled(false);
		z_reset.setEnabled(false);m_sure.setEnabled(false);
		m_reset.setEnabled(false);c_sure.setEnabled(false);
		c_reset.setEnabled(false);
	    
	    p11=new Panel();p11.setPreferredSize(new Dimension(450, 110));p11.setBackground(Color.white);
	    p21=new Panel();p21.setPreferredSize(new Dimension(450, 110));p21.setBackground(Color.white);
	    p31=new Panel();p31.setPreferredSize(new Dimension(450, 110));p31.setBackground(Color.white);
		
		Panel p0=new Panel(new FlowLayout(FlowLayout.LEFT,5,5));
		p0.add(new Label("二进制信号码"));p0.add(text);p0.add(sure);p0.add(reset);p0.add(init);
		Panel p12=new Panel(new GridLayout(2,1));
		p12.add(z_sure);p12.add(z_reset);
		Panel p1=new Panel(new FlowLayout(FlowLayout.LEFT,5,5));
		p1.add(p11);p1.add(p12);
		Panel p22=new Panel(new GridLayout(2,1));
		p22.add(m_sure);p22.add(m_reset);
		Panel p2=new Panel(new FlowLayout(FlowLayout.LEFT,5,5));
		p2.add(p21);p2.add(p22);
		Panel p32=new Panel(new GridLayout(2,1));
		p32.add(c_sure);p32.add(c_reset);
		Panel p3=new Panel(new FlowLayout(FlowLayout.LEFT,5,5));
		p3.add(p31);p3.add(p32);
		
		frame.setLayout(new GridLayout(4,1,10,10));
		frame.add(p0);frame.add(p1);frame.add(p2);frame.add(p3);
		
		frame.addWindowListener(this);
		frame.setVisible(true);
	}
	public void windowClosing(WindowEvent e){
		System.exit(0);
	}
	public void p_fill(Graphics g){
		g.setColor(Color.white);
		g.fillRect(0,0,450,110);
	}
	public void p_init(Graphics g){
		g.drawLine(50,50,450,50);
		g.drawLine(50,10,50,80);
		for(int i=0;i<20;i++){
			int j=50+20*i;
			g.drawLine(j,10,j,20);g.drawLine(j,30,j,40);
			g.drawLine(j,50,j,60);g.drawLine(j,70,j,80);
		}
		
	}
	public void paint(Graphics g) {
		String s=text.getText();s=s+'\0';
		char ch[]=new char[30];
		ch=s.toCharArray();
		if(g.equals(g11)){
			g.setColor(Color.red);
			int i=0;
			while(ch[i]!='\0'){
				g.drawChars(ch,i,1,60+20*i,20);
				i++;
			}
			i=0;
			while(ch[i]!='\0'){
				if(ch[i]=='0'){
					if(i==0){
						g.drawLine(50,30,70,30);
					    i++;
					}
					else{
						if(ch[i-1]=='1'){
							g.drawLine(50+20*i,30,50+20*i,70);
						}
						g.drawLine(50+20*i,30,70+20*i,30);
					    i++;
					}
					
				}
				else if(ch[i]=='1'){
					if(i==0){
						g.drawLine(50,70,70,70);
					    i++;
					}
					else{
						if(ch[i-1]=='0'){
							g.drawLine(50+20*i,30,50+20*i,70);
						}
						g.drawLine(50+20*i,70,70+20*i,70);
					    i++;
					}
				}
				else{
					g.drawString("信号的编码中存在非二进制码!",50,95);
					break;
				}
				
			}
		}
		else if(g.equals(g21)){
			g.setColor(Color.red);
			int i=0;
			while(ch[i]!='\0'){
				g.drawChars(ch,i,1,60+20*i,20);
				i++;
			}
			i=0;
			while(ch[i]!='\0'){
				if(ch[i]=='0'){
					if(i==0){
						g.drawLine(50,30,60,30);
						g.drawLine(60,30,60,70);
						g.drawLine(60,70,70,70);
						i++;
					}
					else{
						if(ch[i-1]=='0'){
							g.drawLine(50+20*i,30,50+20*i,70);
						}
						g.drawLine(50+20*i,30,60+20*i,30);
						g.drawLine(60+20*i,30,60+20*i,70);
						g.drawLine(60+20*i,70,70+20*i,70);
						i++;
					}
				}
				else if(ch[i]=='1'){
					if(i==0){
						g.drawLine(50,70,60,70);
						g.drawLine(60,70,60,30);
						g.drawLine(60,30,70,30);
						i++;
					}
					else{
						if(ch[i-1]=='1'){
							g.drawLine(50+20*i,30,50+20*i,70);
						}
						g.drawLine(50+20*i,70,60+20*i,70);
						g.drawLine(60+20*i,70,60+20*i,30);
						g.drawLine(60+20*i,30,70+20*i,30);
						i++;
					}
				}
				else{
					g.drawString("信号的编码中存在非二进制码!",50,95);
					break;
				}
			}
		}
		else if(g.equals(g31)){
			g.setColor(Color.red);
			int i=0;
			int count_1=0;
			while(ch[i]!='\0'){
				g.drawChars(ch,i,1,60+20*i,20);
				i++;
			}
			i=0;
			while(ch[i]!='\0'){
				if(ch[i]=='0'){
					if(i==0){
						g.drawLine(50,30,50,70);
						g.drawLine(50,70,60,70);
						g.drawLine(60,70,60,30);
						g.drawLine(60,30,70,30);
						i++;
					}
					else{
						if(count_1%2==0){
							g.drawLine(50+20*i,30,50+20*i,70);
							g.drawLine(50+20*i,70,60+20*i,70);
							g.drawLine(60+20*i,70,60+20*i,30);
							g.drawLine(60+20*i,30,70+20*i,30);
							i++;
						}
						else{
							g.drawLine(50+20*i,70,50+20*i,30);
							g.drawLine(50+20*i,30,60+20*i,30);
							g.drawLine(60+20*i,30,60+20*i,70);
							g.drawLine(60+20*i,70,70+20*i,70);
							i++;
						}
					}
				}	
				else if(ch[i]=='1'){
					if(i==0){
						g.drawLine(50,70,60,70);
						g.drawLine(60,70,60,30);
						g.drawLine(60,30,70,30);
						i++;
					}
					else{
						if(count_1%2==0){
							g.drawLine(50+20*i,30,60+20*i,30);
							g.drawLine(60+20*i,30,60+20*i,70);
							g.drawLine(60+20*i,70,70+20*i,70);
							i++;count_1++;
						}
						else{
							g.drawLine(50+20*i,70,60+20*i,70);
							g.drawLine(60+20*i,70,60+20*i,30);
							g.drawLine(60+20*i,30,70+20*i,30);
							i++;count_1++;
						}
					}
				}
				else{
					g.drawString("信号的编码中存在非二进制码!",50,95);
					break;
				}
			}
		}
    }
    public void action(Button b){
    	text.setText("");
		g11=p11.getGraphics();p_fill(g11);g11=p11.getGraphics();p_init(g11);
        g21=p21.getGraphics();p_fill(g21);g21=p21.getGraphics();p_init(g21);
        g31=p31.getGraphics();p_fill(g31);g31=p31.getGraphics();p_init(g31);
        reset.setEnabled(false);
		z_reset.setEnabled(false);
		m_reset.setEnabled(false);
		c_reset.setEnabled(false);
        
    }
    class Init implements ActionListener{
		public void actionPerformed(ActionEvent e){
			g11=p11.getGraphics();p_init(g11);
            g21=p21.getGraphics();p_init(g21);
            g31=p31.getGraphics();p_init(g31);
            text.setEnabled(true);sure.setEnabled(true);
            z_sure.setEnabled(true);m_sure.setEnabled(true);
            c_sure.setEnabled(true);init.setEnabled(false);
		    
		}
	}
	class BianMa implements ActionListener{
		public void actionPerformed(ActionEvent e){
			if(e.getSource()==reset){
			    action(reset);z_sure.setEnabled(true);
			    m_sure.setEnabled(true);c_sure.setEnabled(true);
            }
			else if(e.getSource()==sure){
				g11=p11.getGraphics();paint(g11);
                g21=p21.getGraphics();paint(g21);
                g31=p31.getGraphics();paint(g31);
                reset.setEnabled(true);z_sure.setEnabled(false);
                m_sure.setEnabled(false);c_sure.setEnabled(false);                
			}
		}
	}
	class z_BianMa implements ActionListener{
		public void actionPerformed(ActionEvent e){
			if(e.getSource()==z_reset){
				action(z_reset);	
			}
			else if(e.getSource()==z_sure){
                g11=p11.getGraphics();paint(g11);
                z_reset.setEnabled(true);
			}
		}
	}
	class m_BianMa implements ActionListener{
		public void actionPerformed(ActionEvent e){
			if(e.getSource()==m_reset){
				action(m_reset);
			}
			else if(e.getSource()==m_sure){
				g21=p21.getGraphics();paint(g21);
				m_reset.setEnabled(true);
			}
		}
	}
	class c_BianMa implements ActionListener{
		public void actionPerformed(ActionEvent e){
			if(e.getSource()==c_reset){
				action(c_reset);
			}
			else if(e.getSource()==c_sure){
				g31=p31.getGraphics();paint(g31);
				c_reset.setEnabled(true);
			}
		}
	}
}
	
	
public class XinHaoBianMa{
	public static void main(String[] args){
		Fframe f=new Fframe();
		f.createFrame();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -