高分求两个简单的JAVA设计源代码

高分求两个简单的JAVA设计源代码,第1张

上面 wuzhikun12同学写的不错,但我想还不能运行,并且还不太完善。我给个能运行的:(注意:文件名为:Testjava)

//要实现对象间的比较,就必须实现Comparable接口,它里面有个compareTo方法

//Comparable最好使用泛型,这样,无论是速度还是代码量都会减少

@SuppressWarnings("unchecked")

class Student implements Comparable<Student>{

private String studentNo; //学号

private String studentName; //姓名

private double englishScore; //英语成绩

private double computerScore; //计算机成绩

private double mathScore; //数学成绩

private double totalScore; //总成绩

//空构造函数

public Student() {}

//构造函数

public Student(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

thisstudentNo = studentNo;

thisstudentName = studentName;

thisenglishScore = englishSocre;

thiscomputerScore = computerScore;

thismathScore = mathScore;

}

//计算总成绩

public double sum() {

thistotalScore = englishScore+computerScore+mathScore;

return totalScore;

}

//计算评测成绩

public double testScore() {

return sum()/3;

}

//实现compareTO方法

@Override

public int compareTo(Student student) {

double studentTotal = studentgetTotalScore();

return totalScore==studentTotal0:(totalScore>studentTotal1:-1);

}

//重写toString方法

public String toString(){

return "学号:"+thisgetStudentNo()+" 姓名:"+thisgetStudentName()+" 英语成绩:"+thisgetEnglishScore()+" 数学成绩:"+thisgetMathScore()+" 计算机成绩:"+thisgetComputerScore()+" 总成绩:"+thisgetTotalScore();

}

//重写equals方法

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(!(obj instanceof Student)){

return false;

}

Student student = (Student)obj;

if(thisstudentNoequals(studentgetStudentName())) { //照现实来说,比较是不是同一个学生,应该只是看他的学号是不是相同

return true;

} else {

return false;

}

}

/以下为get和set方法,我个人认为,totalScore的set的方法没必要要,因为它是由其它成绩计算出来的

在set方法中,没设置一次值,调用一次sum方法,即重新计算总成绩

/

public String getStudentNo() {

return studentNo;

}

public void setStudentNo(String studentNo) {

thisstudentNo = studentNo;

sum();

}

public String getStudentName() {

return studentName;

}

public void setStudentName(String studentName) {

thisstudentName = studentName;

sum();

}

public double getEnglishScore() {

return englishScore;

}

public void setEnglishScore(double englishScore) {

thisenglishScore = englishScore;

sum();

}

public double getComputerScore() {

return computerScore;

}

public void setComputerScore(double computerScore) {

thiscomputerScore = computerScore;

sum();

}

public double getMathScore() {

return mathScore;

}

public void setMathScore(double mathScore) {

thismathScore = mathScore;

sum();

}

public double getTotalScore() {

return totalScore;

}

}

//Student子类学习委员类的实现

class StudentXW extends Student {

//重写父类Student的testScore()方法

@Override

public double testScore() {

return sum()/3+3;

}

public StudentXW() {}

//StudentXW的构造函数

public StudentXW(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

super(studentNo,studentName,englishSocre,computerScore,mathScore);

}

}

//Student子类班长类的实现

class StudentBZ extends Student {

//重写父类Student的testScore()方法

@Override

public double testScore() {

return sum()/3+5;

}

public StudentBZ() {}

//StudentXW的构造函数

public StudentBZ(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

super(studentNo,studentName,englishSocre,computerScore,mathScore);

}

}

//测试类

public class Test {

public static void main(String[] args) {

//生成若干个student类、StudentXW类、StudentBZ类

Student student1 = new Student("s001","张三",705,50,885);

Student student2 = new Student("s002","李四",88,65,885);

Student student3 = new Student("s003","王五",67,77,90);

StudentXW student4 = new StudentXW("s004","李六",99,88,995);

StudentBZ student5 = new StudentBZ("s005","朱漆",56,656,435);

Student[] students = {student1,student2,student3,student4,student5};

for(int i = 0 ; i<studentslength; i++){

double avgScore = students[i]testScore();

Systemoutprintln(students[i]getStudentName()+"学生的评测成绩为:"+ avgScore+"分");

}

}

}

运行结果为:

张三学生的评测成绩为:6966666666666667分

李四学生的评测成绩为:805分

王五学生的评测成绩为:780分

李六学生的评测成绩为:985分

朱漆学生的评测成绩为:6003333333333333分

import javaawt;

import javaawtevent;

import javalang;

import javaxswing;

public class Counter extends Frame

{

//声明三个面板的布局

GridLayout gl1,gl2,gl3;

Panel p0,p1,p2,p3;

JTextField tf1;

TextField tf2;

Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;

StringBuffer str;//显示屏所显示的字符串

double x,y;//x和y都是运算数

int z;//Z表示单击了那一个运算符0表示"+",1表示"-",2表示"",3表示"/"

static double m;//记忆的数字

public Counter()

{

gl1=new GridLayout(1,4,10,0);//实例化三个面板的布局

gl2=new GridLayout(4,1,0,15);

gl3=new GridLayout(4,5,10,15);

tf1=new JTextField(27);//显示屏

tf1setHorizontalAlignment(JTextFieldRIGHT);

tf1setEnabled(false);

tf1setText("0");

tf2=new TextField(10);//显示记忆的索引值

tf2setEditable(false);

//实例化所有按钮、设置其前景色并注册监听器

b0=new Button("Backspace");

b0setForeground(Colorred);

b0addActionListener(new Bt());

b1=new Button("CE");

b1setForeground(Colorred);

b1addActionListener(new Bt());

b2=new Button("C");

b2setForeground(Colorred);

b2addActionListener(new Bt());

b3=new Button("MC");

b3setForeground(Colorred);

b3addActionListener(new Bt());

b4=new Button("MR");

b4setForeground(Colorred);

b4addActionListener(new Bt());

b5=new Button("MS");

b5setForeground(Colorred);

b5addActionListener(new Bt());

b6=new Button("M+");

b6setForeground(Colorred);

b6addActionListener(new Bt());

b7=new Button("7");

b7setForeground(Colorblue);

b7addActionListener(new Bt());

b8=new Button("8");

b8setForeground(Colorblue);

b8addActionListener(new Bt());

b9=new Button("9");

b9setForeground(Colorblue);

b9addActionListener(new Bt());

b10=new Button("/");

b10setForeground(Colorred);

b10addActionListener(new Bt());

b11=new Button("sqrt");

b11setForeground(Colorblue);

b11addActionListener(new Bt());

b12=new Button("4");

b12setForeground(Colorblue);

b12addActionListener(new Bt());

b13=new Button("5");

b13setForeground(Colorblue);

b13addActionListener(new Bt());

b14=new Button("6");

b14setForeground(Colorblue);

b14addActionListener(new Bt());

b15=new Button("");

b15setForeground(Colorred);

b15addActionListener(new Bt());

b16=new Button("%");

b16setForeground(Colorblue);

b16addActionListener(new Bt());

b17=new Button("1");

b17setForeground(Colorblue);

b17addActionListener(new Bt());

b18=new Button("2");

b18setForeground(Colorblue);

b18addActionListener(new Bt());

b19=new Button("3");

b19setForeground(Colorblue);

b19addActionListener(new Bt());

b20=new Button("-");

b20setForeground(Colorred);

b20addActionListener(new Bt());

b21=new Button("1/X");

b21setForeground(Colorblue);

b21addActionListener(new Bt());

b22=new Button("0");

b22setForeground(Colorblue);

b22addActionListener(new Bt());

b23=new Button("+/-");

b23setForeground(Colorblue);

b23addActionListener(new Bt());

b24=new Button("");

b24setForeground(Colorblue);

b24addActionListener(new Bt());

b25=new Button("+");

b25setForeground(Colorred);

b25addActionListener(new Bt());

b26=new Button("=");

b26setForeground(Colorred);

b26addActionListener(new Bt());

//实例化四个面板

p0=new Panel();

p1=new Panel();

p2=new Panel();

p3=new Panel();

//创建一个空字符串缓冲区

str=new StringBuffer();

//添加面板p0中的组件和设置其在框架中的位置和大小

p0add(tf1);

p0setBounds(10,25,300,40);

//添加面板p1中的组件和设置其在框架中的位置和大小

p1setLayout(gl1);

p1add(tf2);

p1add(b0);

p1add(b1);

p1add(b2);

p1setBounds(10,65,300,25);

//添加面板p2中的组件并设置其的框架中的位置和大小

p2setLayout(gl2);

p2add(b3);

p2add(b4);

p2add(b5);

p2add(b6);

p2setBounds(10,110,40,150);

//添加面板p3中的组件并设置其在框架中的位置和大小

p3setLayout(gl3);//设置p3的布局

p3add(b7);

p3add(b8);

p3add(b9);

p3add(b10);

p3add(b11);

p3add(b12);

p3add(b13);

p3add(b14);

p3add(b15);

p3add(b16);

p3add(b17);

p3add(b18);

p3add(b19);

p3add(b20);

p3add(b21);

p3add(b22);

p3add(b23);

p3add(b24);

p3add(b25);

p3add(b26);

p3setBounds(60,110,250,150);

//设置框架中的布局为空布局并添加4个面板

setLayout(null);

add(p0);

add(p1);

add(p2);

add(p3);

setResizable(false);//禁止调整框架的大小

//匿名类关闭窗口

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e1)

{

Systemexit(0);

}

});

setBackground(ColorlightGray);

setBounds(100,100,320,280);

setVisible(true);

}

//构造监听器

class Bt implements ActionListener

{

public void actionPerformed(ActionEvent e2)

{

try{

if(e2getSource()==b1)//选择"CE"清零

{

tf1setText("0");//把显示屏清零

strsetLength(0);//清空字符串缓冲区以准备接收新的输入运算数

}

else if(e2getSource()==b2)//选择"C"清零

{

tf1setText("0");//把显示屏清零

strsetLength(0);

}

else if(e2getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数

{

x=DoubleparseDouble(tf1getText()trim());

tf1setText(""+(-x));

}

else if(e2getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值

{

x=DoubleparseDouble(tf1getText()trim());

strsetLength(0);//清空缓冲区以便接收新的另一个运算数

y=0d;

z=0;

}

else if(e2getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值

{

x=DoubleparseDouble(tf1getText()trim());

strsetLength(0);

y=0d;

z=1;

}

else if(e2getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值

{

x=DoubleparseDouble(tf1getText()trim());

strsetLength(0);

y=0d;

z=2;

}

else if(e2getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值

{

x=DoubleparseDouble(tf1getText()trim());

strsetLength(0);

y=0d;

z=3;

}

else if(e2getSource()==b26)//单击等号按钮输出计算结果

{

strsetLength(0);

switch(z)

{

case 0 : tf1setText(""+(x+y));break;

case 1 : tf1setText(""+(x-y));break;

case 2 : tf1setText(""+(xy));break;

case 3 : tf1setText(""+(x/y));break;

}

}

else if(e2getSource()==b24)//单击""按钮输入小数

{

if(tf1getText()trim()indexOf(′′)!=-1)//判断字符串中是否已经包含了小数点

{

}

else//如果没数点有小

{

if(tf1getText()trim()equals("0"))//如果初时显示为0

{

strsetLength(0);

tf1setText((strappend("0"+e2getActionCommand()))toString());

}

else if(tf1getText()trim()equals(""))//如果初时显示为空则不做任何 *** 作

{

}

else

{

tf1setText(strappend(e2getActionCommand())toString());

}

}

y=0d;

}

else if(e2getSource()==b11)//求平方根

{

x=DoubleparseDouble(tf1getText()trim());

tf1setText("数字格式异常");

if(x<0)

tf1setText("负数没有平方根");

else

tf1setText(""+Mathsqrt(x));

strsetLength(0);

y=0d;

}

else if(e2getSource()==b16)//单击了"%"按钮

{

x=DoubleparseDouble(tf1getText()trim());

tf1setText(""+(001x));

strsetLength(0);

y=0d;

}

else if(e2getSource()==b21)//单击了"1/X"按钮

{

x=DoubleparseDouble(tf1getText()trim());

if(x==0)

{

tf1setText("除数不能为零");

}

else

{

tf1setText(""+(1/x));

}

strsetLength(0);

y=0d;

}

else if(e2getSource()==b3)//MC为清除内存

{

m=0d;

tf2setText("");

strsetLength(0);

}

else if(e2getSource()==b4)//MR为重新调用存储的数据

{

if(tf2getText()trim()!="")//有记忆数字

{

tf1setText(""+m);

}

}

else if(e2getSource()==b5)//MS为存储显示的数据

{

m=DoubleparseDouble(tf1getText()trim());

tf2setText("M");

tf1setText("0");

strsetLength(0);

}

else if(e2getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR

{

m=m+DoubleparseDouble(tf1getText()trim());

}

else//选择的是其他的按钮

{

if(e2getSource()==b22)//如果选择的是"0"这个数字键

{

if(tf1getText()trim()equals("0"))//如果显示屏显示的为零不做 *** 作

{

}

else

{

tf1setText(strappend(e2getActionCommand())toString());

y=DoubleparseDouble(tf1getText()trim());

}

}

else if(e2getSource()==b0)//选择的是“BackSpace”按钮

{

if(!tf1getText()trim()equals("0"))//如果显示屏显示的不是零

{

if(strlength()!=1)

{

tf1setText(strdelete(strlength()-1,strlength())toString());//可能抛出字符串越界异常

}

else

{

tf1setText("0");

strsetLength(0);

}

}

y=DoubleparseDouble(tf1getText()trim());

}

else//其他的数字键

{

tf1setText(strappend(e2getActionCommand())toString());

y=DoubleparseDouble(tf1getText()trim());

}

}

}

catch(NumberFormatException e){

tf1setText("数字格式异常");

}

catch(StringIndexOutOfBoundsException e){

tf1setText("字符串索引越界");

}

}

}

public static void main(String args[])

{

new Counter();

}

}

连连看java源代码

import javaxswing;

import javaawt;

import javaawtevent;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //分别记录两次被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

public void init(){

mainFrame=new JFrame("JKJ连连看");

thisContainer = mainFramegetContentPane();

thisContainersetLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContaineradd(centerPanel,"Center");

thisContaineradd(southPanel,"South");

thisContaineradd(northPanel,"North");

centerPanelsetLayout(new GridLayout(6,5));

for(int cols = 0;cols < 6;cols++){

for(int rows = 0;rows < 5;rows++ ){

diamondsButton[cols][rows]=new JButton(StringvalueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows]addActionListener(this);

centerPaneladd(diamondsButton[cols][rows]);

}

}

exitButton=new JButton("退出");

exitButtonaddActionListener(this);

resetButton=new JButton("重列");

resetButtonaddActionListener(this);

newlyButton=new JButton("再来一局");

newlyButtonaddActionListener(this);

southPaneladd(exitButton);

southPaneladd(resetButton);

southPaneladd(newlyButton);

fractionLablesetText(StringvalueOf(IntegerparseInt(fractionLablegetText())));

northPaneladd(fractionLable);

mainFramesetBounds(280,100,500,450);

mainFramesetVisible(true);

}

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins<=15;twins++) {

randoms=(int)(Mathrandom()25+1);

for(int alike=1;alike<=2;alike++) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

}

thisgrid[cols][rows]=randoms;

}

}

}

public void fraction(){

fractionLablesetText(StringvalueOf(IntegerparseInt(fractionLablegetText())+100));

}

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

for(int i=0;i<=6;i++) {

for(int j=0;j<=5;j++) {

if(thisgrid[i][j]!=0) {

save[n]=thisgrid[i][j];

n++;

}

}

}

n=n-1;

thisgrid=grid;

while(n>=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

}

thisgrid[cols][rows]=save[n];

n--;

}

mainFramesetVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

for(int i = 0;i < 6;i++){

for(int j = 0;j < 5;j++ ){

if(grid[i+1][j+1]==0)

diamondsButton[i][j]setVisible(false);

}

}

}

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

}

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg && secondButton!=firstButton){

xiao();

}

}

}

public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释

if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻

remove();

}

else{

for (j=0;j<7;j++ ) {

if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空

if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边

for (i=y-1;i>=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0) {

k=0;

break;

}

else{ k=1; } //K=1说明通过了第一次验证

}

if (k==1) {

linePassOne();

}

}

if (y<j){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边

for (i=y+1;i<=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0){

k=0;

break;

}

else { k=1; }

}

if (k==1){

linePassOne();

}

}

if (y==j ) {

linePassOne();

}

}

if (k==2) {

if (x0==x) {

remove();

}

if (x0<x) {

for (n=x0;n<=x-1;n++ ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 && n==x-1) {

remove();

}

}

}

if (x0>x) {

for (n=x0;n>=x+1 ;n-- ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 && n==x+1) {

remove();

}

}

}

}

}

for (i=0;i<8;i++ ) { //列

if (grid[i][y0]==0) {

if (x>i) {

for (j=x-1;j>=i ;j-- ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x<i) {

for (j=x+1;j<=i;j++ ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

remove();

}

if (y0<y) {

for (n=y0;n<=y-1 ;n++ ) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 && n==y-1) {

remove();

}

}

}

if (y0>y) {

for (n=y0;n>=y+1 ;n--) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 && n==y+1) {

remove();

}

}

}

}

}

}

}

public void linePassOne(){

if (y0>j){ //第一按钮同行空按钮在左边

for (i=y0-1;i>=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0) {

k=0;

break;

}

else { k=2; } //K=2说明通过了第二次验证

}

}

if (y0<j){ //第一按钮同行空按钮在与第二按钮之间

for (i=y0+1;i<=j ;i++){

if (grid[x0][i]!=0) {

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0>i) {

for (j=x0-1;j>=i ;j-- ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

if (x0<i) {

for (j=x0+1;j<=i ;j++ ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

}

public void remove(){

firstButtonsetVisible(false);

secondButtonsetVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

}

public void actionPerformed(ActionEvent e) {

if(egetSource()==newlyButton){

int grid[][] = new int[8][7];

thisgrid = grid;

randomBuild();

mainFramesetVisible(false);

pressInformation=false;

init();

}

if(egetSource()==exitButton)

Systemexit(0);

if(egetSource()==resetButton)

reload();

for(int cols = 0;cols < 6;cols++){

for(int rows = 0;rows < 5;rows++ ){

if(egetSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llkrandomBuild();

llkinit();

}

}

//old 998 lines

//new 318 lines

基于JAVA的3D坦克游戏源代码

>

import javaawt;

import javaawtevent;

import javaxswing;

public class testZ extends JFrame implements ActionListener{

private JPanel jPanel1,jPanel2;

private JTextField resultField;

private JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,f1,f2;

private boolean end,add,sub,mul,div;

private String str;

private double num1,num2;

public testZ(){

super("计算器");

setSize(300,240);

Container con=getContentPane();

consetLayout(new BorderLayout());

jPanel1=new JPanel();

jPanel1setLayout(new GridLayout(1,1));

jPanel2=new JPanel();

jPanel2setLayout(new GridLayout(4,4));

resultField=new JTextField("0");

jPanel1add(resultField);

conadd(jPanel1,BorderLayoutNORTH);

s1=new JButton(" 1 "); s1addActionListener(this);

s2=new JButton(" 2 "); s2addActionListener(this);

s3=new JButton(" 3 "); s3addActionListener(this);

s4=new JButton(" 4 "); s4addActionListener(this);

s5=new JButton(" 5 "); s5addActionListener(this);

s6=new JButton(" 6 "); s6addActionListener(this);

s7=new JButton(" 7 "); s7addActionListener(this);

s8=new JButton(" 8 "); s8addActionListener(this);

s9=new JButton(" 9 "); s9addActionListener(this);

s0=new JButton(" 0 "); s0addActionListener(this);

b1=new JButton(" + "); b1addActionListener(this);

b2=new JButton(" - "); b2addActionListener(this);

b3=new JButton(" "); b3addActionListener(this);

b4=new JButton(" / "); b4addActionListener(this);

f1=new JButton(" "); f1addActionListener(this);

f2=new JButton(" = "); f2addActionListener(this);

jPanel2add(s1);

jPanel2add(s2);

jPanel2add(s3);

jPanel2add(b1);

jPanel2add(s4);

jPanel2add(s5);

jPanel2add(s6);

jPanel2add(b2);

jPanel2add(s7);

jPanel2add(s8);

jPanel2add(s9);

jPanel2add(b3);

jPanel2add(s0);

jPanel2add(f1);

jPanel2add(f2);

jPanel2add(b4);

conadd(jPanel2,BorderLayoutCENTER);

}

public void num(int i){

String s = null;

s=StringvalueOf(i);

if(end){

//如果数字输入结束,则将文本框置零,重新输入

resultFieldsetText("0");

end=false;

}

if((resultFieldgetText())equals("0")){

//如果文本框的内容为零,则覆盖文本框的内容

resultFieldsetText(s);

}

else{

//如果文本框的内容不为零,则在内容后面添加数字

str = resultFieldgetText() + s;

resultFieldsetText(str);

}

}

public void actionPerformed(ActionEvent e){ //数字事件

if(egetSource()==s1)

num(1);

else if(egetSource()==s2)

num(2);

else if(egetSource()==s3)

num(3);

else if(egetSource()==s4)

num(4);

else if(egetSource()==s5)

num(5);

else if(egetSource()==s6)

num(6);

else if(egetSource()==s7)

num(7);

else if(egetSource()==s8)

num(8);

else if(egetSource()==s9)

num(9);

else if(egetSource()==s0)

num(0);

//符号事件

else if(egetSource()==b1)

sign(1);

else if(egetSource()==b2)

sign(2);

else if(egetSource()==b3)

sign(3);

else if(egetSource()==b4)

sign(4);

//等号

else if(egetSource()==f1){

str=resultFieldgetText();

if(strindexOf("")<=1){

str+="";

resultFieldsetText(str);

}

}

else if(egetSource()==f2){

num2=DoubleparseDouble(resultFieldgetText());

if(add){

num1=num1 + num2;}

else if(sub){

num1=num1 - num2;}

else if(mul){

num1=num1 num2;}

else if(div){

num1=num1 / num2;}

resultFieldsetText(StringvalueOf(num1));

end=true;

}

}

public void sign(int s){

if(s==1){

add=true;

sub=false;

mul=false;

div=false;

}

else if(s==2){

add=false;

sub=true;

mul=false;

div=false;

}

else if(s==3){

add=false;

sub=false;

mul=true;

div=false;

}

else if(s==4){

add=false;

sub=false;

mul=false;

div=true;

}

num1=DoubleparseDouble(resultFieldgetText());

end=true;

}

public static void main(String[] args){

testZ th1=new testZ();

th1show();

}

}

import javaawt;

import javaawtevent;

import javautilRandom;

import javaxswingTimer;

public class PinBall

{

private final int TABLE_WIDTH = 300;//桌面宽度

private final int TABLE_HEIGHT = 400;//桌面高度

private final int RACKET_Y = 340;//球拍的垂直位置

private final int RACKET_HEIGHT = 20;//球拍高度

private final int RACKET_WIDTH = 60;//球拍宽度

private final int BALL_SIZE = 16;//球的大小

private Frame f = new Frame("d球游戏");//实例化一个窗口

Random rand = new Random();//实例化一个随机数生成器

private int ySpeed = 10;//小球的纵向运动数度、

private double xyRate = randnextDouble() - 05;//返回一个-05到05之间的比率用控制小球运动方向

private int xSpeed = (int)(ySpeedxyRate2);//这个横向速度在-10到10之间,产生左右摆动运动效果

private int ballX = randnextInt(200)+20;//小球开始的横坐标位置,200表示产生0到100之间的随机数

private int ballY = randnextInt(10)+20;//小球开始的纵坐标位置

private int racketX = randnextInt(200);//球拍开始时的横坐标位置

private MyCanvas tableArea = new MyCanvas();//实力化一个画布工具,集成Canvas类

private String shape = "";//保存需要绘制图形的字符串属性

Timer timer;//声明一个时间变量

private boolean isLose = false;//表示游戏是否结束

public void init()

{

tableAreasetPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定义画布大小

fadd(tableArea);//添加画布到窗口

KeyAdapter keyProcessor = new KeyAdapter()//实例化一个键盘监听事件适配器

{

public void keyPressed(KeyEvent ke)//重写适配器里面的按下某键盘方法

{

if(kegetKeyCode()==KeyEventVK_LEFT)//按下键盘左键时

{

if(racketX > 0)//球拍左边框不能出画布的左边框

racketX -=10;//按一左键次向左移动10个像素

}

if(kegetKeyCode()==KeyEventVK_RIGHT)//按下键盘右键时

{

if(racketX < TABLE_WIDTH - RACKET_WIDTH)//球拍右边框不能出画布的右边框

racketX +=10;//按一次右键移动向右移动10个像素

}

}

};

faddKeyListener(keyProcessor);//给窗口添加键盘监听器

tableAreaaddKeyListener(keyProcessor);//给画布添加键盘监听器

ActionListener taskPerformer = new ActionListener()//这里是实例化了一个监听接口,这个接口里面只有一个方法

{

public void actionPerformed(ActionEvent evt)//重写这个接口里面的方法,判断小球的位置

{

if(ballX<=0 || ballX>=TABLE_WIDTH-BALL_SIZE)//保证小球横向上在画布之内运动

{

xSpeed = -xSpeed;//触发反方向运动

}

if(ballY>=RACKET_Y-BALL_SIZE&&(ballX<racketX||ballX>racketX+RACKET_WIDTH))//出了球拍的可击打范围

{

timerstop();//停止对监听器的触发

isLose=true;//将标志isLose变量置为true

tableArearepaint();//调用画布的重绘方法

}

else if(ballY<=0||(ballY>=RACKET_Y-BALL_SIZE&&ballY>racketX&&ballX<=racketX+RACKET_WIDTH))//小球在球拍之内,而其到达球拍的高度

{

ySpeed=-ySpeed;//上下方向改变,小球反d

}

ballY+=ySpeed;//小球的坐标在纵向上增加

ballX+=xSpeed;//小球的坐标在横向上的增加

tableArearepaint();//调用画布的重绘方法3

}

};

timer = new Timer(100,taskPerformer);//每隔01秒运行一次监听器

timerstart();//计时器开始运行

faddWindowListener(new MyListener());//关闭窗口事件

fpack();//设置窗口最佳大小

fsetVisible(true);//显示窗口

}

class MyListener extends WindowAdapter//关闭窗口的类

{

public void windowClosing(WindowEvent e)

{

Systemexit(0);

}

}

public static void main(String[] args)//程序入口

{

new PinBall()init();//调用PinBall类里面的init()方法

}

class MyCanvas extends Canvas//建一个集成Canvas类的类

{

public void paint(Graphics g)//重写父类的绘图方法

{

if(isLose)//如果isLose为真,则在画布里打印“游戏已结束”

{

gsetColor(new Color(255,0,0));//当前颜色

gsetFont(new Font("黑体",FontBOLD,30));//字体名称,样式,大小

gdrawString("游戏已结束!",50,200);//按坐标绘制文字图形

}

else//负责

{

gsetColor(new Color(240,240,80));//当前颜色

gfillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充颜色,根据坐标和长宽填充圆形

gsetColor(new Color(80,80,200));//当前颜色

gfillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充颜色,根据坐标和长宽填充矩形

}

}

}

}

以上就是关于高分求两个简单的JAVA设计源代码全部的内容,包括:高分求两个简单的JAVA设计源代码、求一个JAVA计算器源代码。不要按钮的那种。速度。。急用、跪地求好玩的JAVA 源代码~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9515395.html

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

发表评论

登录后才能评论

评论列表(0条)

保存