题目描述不是很清楚,我是按我的理解做的,不多说,以下是代码:
package comycktest;import javautilRandom;
public class Test{
public static void main(String args[]) {
Random random = new Random() ;//定义一个对象random,并实例化 ;
int i = randomnextInt(20) ; //定义一个整型变量i,并用从1~20中随机取一个值赋给i ;
int data[] = new int[i] ; //定义一个数组data ,长度是i
//第一行数据
for(int j = 0 ;j < datalength ;j ++){
data[j] = randomnextInt(15) ; //产生1~15的随机数并赋值给data[i]
}
for(int x = 0 ;x < datalength ;x ++) {
Systemoutprint(data[x]+" ") ;
}
Systemoutprintln();//换行
//第二行数据
for(int j = 0 ;j < datalength ;j ++){
data[j] = randomnextInt(15) ;
}
for(int x = 0 ;x < datalength ;x ++) {
Systemoutprint(data[x]+" ") ;
}
Systemoutprintln();
//第三行数据
for(int j = 0 ;j < datalength ;j ++){
data[j] = randomnextInt(15) ;
}
for(int x = 0 ;x < datalength ;x ++) {
Systemoutprint(data[x]+" ") ;
}
Systemoutprintln();
//第四行数据
for(int j = 0 ;j < datalength ;j ++){
data[j] = randomnextInt(15) ;
}
for(int x = 0 ;x < datalength ;x ++) {
Systemoutprint(data[x]+" ") ;
}
Systemoutprintln();
//第五行数据
for(int j = 0 ;j < datalength ;j ++){
data[j] = randomnextInt(15) ;
}
for(int x = 0 ;x < datalength ;x ++) {
Systemoutprint(data[x]+" ") ;
}
}
}
package heh;//我自己的包名
import javaawt;
import javaawtevent;
import javaxswingevent;
import javaxswing;
public class Jsq extends JFrame
{
Panel pan1=new Panel();
Panel pan2=new Panel();
Panel pan3=new Panel();
Panel pan4=new Panel();
Panel pan5=new Panel();
Label la1=new Label("欢迎使用计算器");
Button bt1=new Button(" ");
Button bt2=new Button("MC");
Button bt3=new Button("MR");
Button bt4=new Button("MS");
Button bt5=new Button("M+");
Button bt11=new Button("Backspace");
Button bt12=new Button("CE");
Button bt13=new Button("C");
Button but[]=new Button[20];
String buta[]={"7","8","9","/","sqrt","4","5","6","","%","1","2","3","-","1/x","0","-/+","","+","="};
JTextField t1=new JTextField("0");//swing组件,可以设置对齐方式
double a=0;//记录计算中的值或结果
String b="";//“+,-,,/”运算符号标记
int d=0; //是否刚刚按过运算符号标记
int x=0; //是否刚刚按过“=”号标记
int y=0; //屏幕刚刚出现过汉字的标记
public Jsq()
{
super("计算器");
add(pan1,BorderLayoutNORTH);
add(pan4,BorderLayoutCENTER);
add(pan3,BorderLayoutWEST);
pan3setLayout(new GridLayout(0,1,10,10));
pan3add(bt1);pan3add(bt2);pan3add(bt3);pan3add(bt4);pan3add(bt5);
pan4setLayout(new BorderLayout());
pan4add(pan5,BorderLayoutNORTH);
pan4add(pan2,BorderLayoutCENTER);
pan5setLayout(new GridLayout(1,3,5,5));
pan5add(bt11);pan5add(bt12);pan5add(bt13);
pan1setLayout(new GridLayout(3,1));
pan1add(la1);
pan1add(t1);
t1setEditable(false);//文本框设置为不可修改
t1setHorizontalAlignment(JTextFieldRIGHT);//设置文本框对齐方式
pan2setLayout(new GridLayout(4,5,10,10));
for(int i=0;i<20;i++)
{
but[i]=new Button(buta[i]);
pan2add(but[i]);
}
but[0]addActionListener(new A());
but[1]addActionListener(new A());
but[2]addActionListener(new A());
but[3]addActionListener(new A());
but[4]addActionListener(new A());
but[5]addActionListener(new A());
but[6]addActionListener(new A());
but[7]addActionListener(new A());
but[8]addActionListener(new A());
but[9]addActionListener(new A());
but[10]addActionListener(new A());
but[11]addActionListener(new A());
but[12]addActionListener(new A());
but[13]addActionListener(new A());
but[14]addActionListener(new A());
but[15]addActionListener(new A());
but[16]addActionListener(new A());
but[17]addActionListener(new A());
but[18]addActionListener(new A());
but[19]addActionListener(new A());
bt11addActionListener(new A());
bt12addActionListener(new A());
bt13addActionListener(new A());
bt1addActionListener(new A());
bt2addActionListener(new A());
bt3addActionListener(new A());
bt4addActionListener(new A());
bt5addActionListener(new A());
}
class A implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(egetSource()==but[0]) //"7"
{
if(x==1) //判断是否刚刚按过"="
{
t1setText("7");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{ //如果显示为"0"或"00"或者刚刚按过运算符号
t1setText("7"); //或者屏幕显示为汉字 那么显示为"7"
y=0;//将标记设置为0
}
else
t1setText(t1getText()+"7");//将显示的字符串后面加"7"
d=0;//将标记设置为0
if(t1getText()length()>40)//判断显示字符长度是否超过40
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[1]) //"8"
{
if(x==1)
{
t1setText("8");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("8");
y=0;
}
else
t1setText(t1getText()+"8");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[2]) //"9"
{
if(x==1)
{
t1setText("9");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("9");
y=0;
}
else
t1setText(t1getText()+"9");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[3]) //"/"
{
if(y==1) //判断显示的是否为汉字
{
t1setText("0");
y=0;
}
if(d==0) //判断是否刚刚按过运算符号 防止连续按运算符号产生错误
{
if(bequals("+"))//四则混合运算时 判断上次计算是否为"+"
{
a=a+DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("-"))//四则混合运算时 判断上次计算是否为"-"
{
a=a-DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals(""))//四则混合运算时 判断上次计算是否为""
{
a=aDoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("/"))//四则混合运算时 判断上次计算是否为"/"
{
double f=DoublevalueOf(t1getText())doubleValue();
if(f==0)//判断除数是否为0
{
t1setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(bequals(""))//判断进行的是不是四则混合运算的第一次运算
{
a=DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(!t1getText()equals("错误!请按“CE”清屏后继续计算"))//是否出现了除数为零的错误
{
b="/";//运算符号标记设置为"/"
d=1; //标记已经按过运算符号
}
if(t1getText()length()>40)//判断显示字符长度是否超过40
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;//将记忆的数字抹去
b="";//运算符号标记 为未按过运算符号
d=0;//标记 刚刚没有按过运算符号
y=1;//标记 屏幕显示了汉字
}
}
if(egetSource()==but[4]) //"sqrt"
{
if(y==1)
{
t1setText("0");
y=0;
}
double f=DoublevalueOf(t1getText())doubleValue();
if(f<0) //判断被开放数是否小于零
{
t1setText("错误!被开方数小于0,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
else
{
f=Mathsqrt(f);
t1setText(""+(f));
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[5]) //"4"
{
if(x==1)
{
t1setText("4");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("4");
y=0;
}
else
t1setText(t1getText()+"4");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[6]) //"5"
{
if(x==1)
{
t1setText("5");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("5");
y=0;
}
else
t1setText(t1getText()+"5");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[7]) //"6"
{
if(x==1)
{
t1setText("6");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("6");
y=0;
}
else
t1setText(t1getText()+"6");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[8]) //""
{
if(y==1)
{
t1setText("0");
y=0;
}
if(d==0)
{
if(bequals("+"))
{
a=a+DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("-"))
{
a=a-DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals(""))
{
a=aDoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("/"))
{
double f=DoublevalueOf(t1getText())doubleValue();
if(f==0)
{
t1setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(bequals(""))
{
a=DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(!t1getText()equals("错误!请按“CE”清屏后继续计算"))
{
b="";
d=1;
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[9]) //"%"
{
if(y==1)
{
t1setText("0");
y=0;
}
double f=DoublevalueOf(t1getText())doubleValue();
t1setText(""+(f/100));
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[10]) //"1"
{
if(x==1)
{
t1setText("1");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("1");
y=0;
}
else
t1setText(t1getText()+"1");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[11]) //"2"
{
if(x==1)
{
t1setText("2");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("2");
y=0;
}
else
t1setText(t1getText()+"2");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[12]) //"3"
{
if(x==1)
{
t1setText("3");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("3");
y=0;
}
else
t1setText(t1getText()+"3");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[13]) //"-"
{
if(y==1)
{
t1setText("0");
y=0;
}
if(d==0)
{
if(bequals("+"))
{
a=a+DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("-"))
{
a=a-DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals(""))
{
a=aDoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("/"))
{
double f=DoublevalueOf(t1getText())doubleValue();
if(f==0)
{
t1setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(bequals(""))
{
a=DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(!t1getText()equals("错误!请按“CE”清屏后继续计算"))
{
b="-";
d=1;
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[14]) //"1/x"
{
if(y==1)
{
t1setText("0");
y=0;
}
else
{
double f=DoublevalueOf(t1getText())doubleValue();
t1setText(""+(1/f));
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
}
if(egetSource()==but[15]) //"0"
{
if(x==1)
{
t1setText("0");
x=0;
}
if(t1getText()equals("00")||t1getText()equals("0")||d==1||y==1)
{
t1setText("0");
y=0;
}
else
t1setText(t1getText()+"0");
d=0;
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[16]) //"-/+"
{
if(y==1)
{
t1setText("0");
y=0;
}
double f=DoublevalueOf(t1getText())doubleValue();
t1setText(""+(-f));
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[17]) //""
{
if(y==1)
{
t1setText("0");
y=0;
}
if(t1getText()indexOf("")==-1)//判断是否已经有""
{
t1setText(t1getText()+"");
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[18]) //"+"
{
if(y==1)
{
t1setText("0");
y=0;
}
if(d==0)
{
if(bequals("+"))
{
a=a+DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("-"))
{
a=a-DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals(""))
{
a=aDoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("/"))
{
double f=DoublevalueOf(t1getText())doubleValue();
if(f==0)
{
t1setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(bequals(""))
{
a=DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(!t1getText()equals("错误!请按“CE”清屏后继续计算"))
{
b="+";
d=1;
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==but[19]) //"="
{
if(y==1)
{
t1setText("0");
y=0;
}
if(bequals("+"))
{
a=a+DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("-"))
{
a=a-DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals(""))
{
a=aDoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(bequals("/"))
{
double f=DoublevalueOf(t1getText())doubleValue();
if(f==0)
{
t1setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
}
if(bequals(""))
{
a=DoublevalueOf(t1getText())doubleValue();
t1setText(""+a);
}
if(!t1getText()equals("错误!请按“CE”清屏后继续计算"))
{
b="";
d=1;
x=1;
}
if(t1getText()length()>40)
{
t1setText("错误!数字过长,请按“C”从新输入");
a=00;
b="";
d=0;
y=1;
}
}
if(egetSource()==bt11) //"Backspace"
{
if(y==1)
{
t1setText("0");
y=0;
}
else
{
String s1=t1getText();
if(s1length()==1)//如果将显示的数字全部退掉 则显示"0"
{
t1setText("0");
}
else
{
t1setText(s1substring(0,(s1length()-1)));//退格
}
}
}
if(egetSource()==bt12) //"CE"
{
t1setText("0");//清屏
}
if(egetSource()==bt13) //"C" 初始化
{
t1setText("0");
a=00;
b="";
d=0;
}
if(egetSource()==bt1) //""
{
}
if(egetSource()==bt2) //"MC"
{
}
if(egetSource()==bt3) //"MR"
{
}
if(egetSource()==bt4) //"MS"
{
}
if(egetSource()==bt5) //"M+"
{
}
}
}
public static void main(String args[])
{
Jsq a=new Jsq();
asetSize(300,250);
asetVisible(true);
}
}
getStringBounds方法将返回包围字符串的矩形。
getStringBounds方法返回的矩形宽度是字符串水平方向的宽度。矩形的高度是上坡度、下坡度、行间距的总和。该矩形始于字符串的基线,矩形顶部的y坐标为负值。
FontRenderContext 你看看下面这个连接,就明白了
>
可参考 孙博文 的一本书 分形算法与程序设计: Java实现 里面有3D的内容
貌似要下载 JAVA3D 的msi安装包 解压后得到jar包 JAVA 3D已经被淘汰 可能有点难找
用Java3D编程就行了 你先把那书上关于3D的代码 稍微看一下 编程的思路也就是 先建立一个场景(有光) 然后空间描点 画线 着色 之类的 可以参考具体的Java 3D 的书 貌似大多是英文的
编程也可以参考官方API文档>
以上就是关于关于JAVA程序设计的问题全部的内容,包括:关于JAVA程序设计的问题、用java 基于SWING的图形用户界面设计 编写一个应用程序、你再详细说清楚这两个类的差别,是Java程序设计绘图技术的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)