将两个java程序合并成一个运行

现有两个程序,程序1首先要求输入任意字符串,它负责将其生成200位二进制序列(存在char型数组c里),而程序2是利用1中的数组c画图,最终希望得到的结果首先是输入编码内容,当随机输入字符串后就会生成图形。但是现在两个程序都能单独执行,但是合并一起无法生成图形,请高手帮忙看看应该如何修改,非常感谢!
程序1:
import java.util.*;
import java.applet.*;
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
public class bianma
{
public static void main(String args[])
{
System.out.println("输入编码内容:");
Scanner reader=new Scanner(System.in);
String inpt;
String sz=new String();
String erjinzhi=new String();
inpt=reader.next();
String binaryString=new String();
String season =new String();
String szh=new String();
String szz=new String();
int inptLength = inpt.length();
int strLength;
int n3;
int n4;
int n5;
boolean b = true;
if(inptLength%3 == 0)
{
strLength = inptLength/3;
}
else
{
b = false;
strLength = (int)inptLength/3 + 1;
}
String[] str = new String[strLength];
for(int i=0; i<str.length;i++)
{
if(b||(i!=str.length-1))
str[i] = inpt.substring(3*i,3*i+3);
else
str[i] = inpt.substring(3*i);
}
int x;
for(int i=0; i<str.length;i++)
{
String s=str[i];
x=Integer.parseInt(s);
binaryString=Long.toBinaryString(x);
n3=binaryString.length();
switch(n3)
{
case 1:
erjinzhi="000000000";
break;
case 2:
erjinzhi="00000000";
break;
case 3:
erjinzhi="0000000";
break;
case 4:
erjinzhi="000000";
break;
case 5:
erjinzhi="00000";
break;
case 6:
erjinzhi="0000";
break;
case 7:
erjinzhi="000";
break;
case 8:
erjinzhi="00";
break;
case 9:
erjinzhi="0";
break;
case 10:
erjinzhi="";
break;

}
sz=sz+erjinzhi+binaryString;
}

szh=sz+"0001";
switch(inptLength%3)
{
case 0:
season="1111111111";
break;
case 1:
season="1111111110";
break;
case 2:
season="1111111101";
break;
}

szz=season+szh;
n4=szz.length();

char [] a=szz.toCharArray();

char c [200]={'0'};

int j=199;
int i;
for(i=n4-1;i>=0;i--)
{
c[j]=a[i];
j--;
}
System.out.print(c);//这是用做测试程序的,实际上不用输出

}
}
程序2:
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
public class Text extends Applet
{
public void paint(Graphics g)
{
g.drawRect(0 ,0, 28,28);
//下列程序中的c[n]就是程序1中的数组c
{
int j=3;
int i=12;
{
for (int n=0;n<=4;n++)

switch (c[n])
{
case(1):

g.drawLine(n+i,j,n+i,j);
}
}
}
//后面重复画点程序省略

}
}

第1个回答  2008-05-22
我改了几处,标示出来了,经测试确实能运行和画图。不过或许你需要再改一下
import java.util.*;
import java.applet.*;
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
public class Bianma extends Applet

{ //*********************将数组C做为全局变量
char c[]=new char[200];
//************输入任意字符串,它负责将其生成200位二进制序列C
public void getC()
{
System.out.println("输入编码内容:");
Scanner reader=new Scanner(System.in);
String inpt;
String sz=new String();
String erjinzhi=new String();
inpt=reader.next();
String binaryString=new String();
String season =new String();
String szh=new String();
String szz=new String();
int inptLength = inpt.length();
int strLength;
int n3;
int n4;
int n5;
boolean b = true;
if(inptLength%3 == 0)
{
strLength = inptLength/3;
}
else
{
b = false;
strLength = (int)inptLength/3 + 1;
}
String[] str = new String[strLength];
for(int i=0; i<str.length;i++)
{
if(b||(i!=str.length-1))
str[i] = inpt.substring(3*i,3*i+3);
else
str[i] = inpt.substring(3*i);
}
int x;
for(int i=0; i<str.length;i++)
{
String s=str[i];
x=Integer.parseInt(s);
binaryString=Long.toBinaryString(x);
n3=binaryString.length();
switch(n3)
{
case 1:
erjinzhi="000000000";
break;
case 2:
erjinzhi="00000000";
break;
case 3:
erjinzhi="0000000";
break;
case 4:
erjinzhi="000000";
break;
case 5:
erjinzhi="00000";
break;
case 6:
erjinzhi="0000";
break;
case 7:
erjinzhi="000";
break;
case 8:
erjinzhi="00";
break;
case 9:
erjinzhi="0";
break;
case 10:
erjinzhi="";
break;

}
sz=sz+erjinzhi+binaryString;
}

szh=sz+"0001";
switch(inptLength%3)
{
case 0:
season="1111111111";
break;
case 1:
season="1111111110";
break;
case 2:
season="1111111101";
break;
}

szz=season+szh;
n4=szz.length();

char [] a=szz.toCharArray();

char c[]=new char[200];
c[199]= '0';

int j=199;
int i;
for(i=n4-1;i>=0;i--)
{
c[j]=a[i];
j--;
}
System.out.print(c);//这是用做测试程序的,实际上不用输出

}
//*****************画图程序
public void paint(Graphics g)
{
getC();
g.drawRect(0 ,0, 28,28);
//下列程序中的c[n]就是程序1中的数组c
{
int j=3;
int i=12;
{
for (int n=0;n<=4;n++)

switch (c[n])
{
case(1):

g.drawLine(n+i,j,n+i,j);
}
}
}
//后面重复画点程序省略

}
}本回答被提问者采纳
相似回答