上面 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 源代码~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)