📄 xinhaobianma.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 + -