关于JAVA程序设计的问题

关于JAVA程序设计的问题,第1张

题目描述不是很清楚,我是按我的理解做的,不多说,以下是代码:

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程序设计绘图技术的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9389358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存