「java源码欣赏」java源码编译

博主:adminadmin 2023-01-16 11:18:07 466

本篇文章给大家谈谈java源码欣赏,以及java源码编译对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

急!急!求java计算器源代码 最后能出如图这样的界面并能运行 急啊 好的翻倍追加分啊

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class CalculatorGUI {

private Frame f;

private Panel p1, p2;

private Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;

private Button bPoint, bAdd, bDec, bMul, bDiv, bCal;

private TextField tf;

private String s, op;

private Calculator cal = new Calculator();

private boolean ifOp;

public CalculatorGUI() {

f = new Frame("Calculator");

p1 = new Panel();

p2 = new Panel();

b0 = new Button("0");

b1 = new Button("1");

b2 = new Button("2");

b3 = new Button("3");

b4 = new Button("4");

b5 = new Button("5");

b6 = new Button("6");

b7 = new Button("7");

b8 = new Button("8");

b9 = new Button("9");

bPoint = new Button(".");

bAdd = new Button("+");

bDec = new Button("-");

bMul = new Button("*");

bDiv = new Button("/");

bCal = new Button("=");

tf = new TextField(25);

tf.setEditable(false);

}

public void launchFrame() {

f.setSize(220, 160);

f.setResizable(false);

f.addWindowListener(new myWindowListener());

p1.setLayout(new FlowLayout(FlowLayout.CENTER));

p1.add(tf);

f.add(p1, BorderLayout.NORTH);

p2.setLayout(new GridLayout(4, 4));

b0.addActionListener(new setLabelText_ActionListener());

b1.addActionListener(new setLabelText_ActionListener());

b2.addActionListener(new setLabelText_ActionListener());

b3.addActionListener(new setLabelText_ActionListener());

b4.addActionListener(new setLabelText_ActionListener());

b5.addActionListener(new setLabelText_ActionListener());

b6.addActionListener(new setLabelText_ActionListener());

b7.addActionListener(new setLabelText_ActionListener());

b8.addActionListener(new setLabelText_ActionListener());

b9.addActionListener(new setLabelText_ActionListener());

bPoint.addActionListener(new setLabelText_ActionListener());

bAdd.addActionListener(new setOperator_ActionListener());

bDec.addActionListener(new setOperator_ActionListener());

bMul.addActionListener(new setOperator_ActionListener());

bDiv.addActionListener(new setOperator_ActionListener());

bCal.addActionListener(new setOperator_ActionListener());

p2.add(b7);

p2.add(b8);

p2.add(b9);

p2.add(bAdd);

p2.add(b4);

p2.add(b5);

p2.add(b6);

p2.add(bDec);

p2.add(b1);

p2.add(b2);

p2.add(b3);

p2.add(bMul);

p2.add(b0);

p2.add(bPoint);

p2.add(bCal);

p2.add(bDiv);

f.add(p2, BorderLayout.SOUTH);

f.setVisible(true);

}

public void setTextFieldText_Temp() {

if (tf.getText().length() 15

(tf.getText().indexOf(".") == -1 || !s.equals("."))) {

tf.setText(tf.getText() + s);

} else {

tf.setText((tf.getText() + s).substring(0, 15));

}

}

public void setTextFieldText() {

if (ifOp) {

ifOp = false;

tf.setText("");

setTextFieldText_Temp();

} else {

setTextFieldText_Temp();

}

}

public static void main(String[] args) {

CalculatorGUI calculator = new CalculatorGUI();

calculator.launchFrame();

}

class myWindowListener extends WindowAdapter {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

class setLabelText_ActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

Button tempB = (Button) e.getSource();

s = tempB.getLabel();

setTextFieldText();

}

}

class setOperator_ActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

Button tempB = (Button) e.getSource();

op = tempB.getLabel();

if (op.equals("+")) {

tf.setText(cal.opAdd(tf.getText()));

ifOp = true;

} else if (op.equals("-")) {

tf.setText(cal.opSubtract(tf.getText()));

ifOp = true;

} else if (op.equals("*")) {

tf.setText(cal.opMultiply(tf.getText()));

ifOp = true;

} else if (op.equals("/")) {

tf.setText(cal.opDivide(tf.getText()));

ifOp = true;

} else if (op.equals("=")) {

tf.setText(cal.opEquals(tf.getText()));

ifOp = true;

}

}

}

}

class Calculator {

private String result = "0";

private int op = 0, add = 1, sub = 2, mul = 3, div = 4;

private double stringToDouble(String x) {

double y = Double.parseDouble(x);

return y;

}

private void operate(String x) {

double x1 = stringToDouble(x);

double y = stringToDouble(result);

switch (op) {

case 0:

result = x;

break;

case 1:

result = String.valueOf(y + x1);

break;

case 2:

result = String.valueOf(y - x1);

break;

case 3:

result = String.valueOf(y * x1);

break;

case 4:

if (x1 != 0) {

result = String.valueOf(y / x1);

} else {

result = "The divisor can't be zero!";

}

break;

}

}

public String opAdd(String x) {

operate(x);

op = add;

return result;

}

public String opSubtract(String x) {

operate(x);

op = sub;

return result;

}

public String opMultiply(String x) {

operate(x);

op = mul;

return result;

}

public String opDivide(String x) {

operate(x);

op = div;

return result;

}

public String opEquals(String x) {

operate(x);

op = 0;

return result;

}

public void opClean() {

op = 0;

result = "0";

}

}

求java实现矩阵图上任意两点的最短路径源码

我用的是递归调用方法,有个小问题就是在打印步数的时候是返向的,原因是就是程序不断的调用自己,到最后判断基值位准退出调用。这才开始从栈里取出方法进行执行的原因。

代码欣赏:

public static int step = 1;

public static StringBuffer printStep = new StringBuffer();

public static int[][] maze ={{1,1,1,1,1,1,1,1,1,1,1},

{1,0,1,0,1,0,0,0,0,0,1 },

{1,0,1,0,0,0,1,0,1,1,1 },

{1,0,0,0,1,0,1,0,0,0,1 },

{1,0,1,1,0,0,1,0,0,1,1 },// 0代表可以通过,1代表不可通过

{1,0,1,0,1,1,0,1,0,0,1 },

{1,0,0,0,0,0,0,0,1,0,1 },

{1,0,1,0,1,0,1,0,1,0,1 },

{1,0,0,1,0,0,1,0,1,0,1 },

{1,1,1,1,1,1,1,1,1,1,1 } };

public static void main(String[] args) {

int i, j; //循环记数变量

Sample.way(1, 1);//二维数组起始值从下标1,1开始

System.out.println("起点从坐标 x = 1, y = 1开始");

System.out.println("终点坐标是 x = 8, y = 9结束");

System.out.println("这是迷宫图表");

System.out.println("  0    1    2    3    4    5    6    7    8    9   10");

System.out.println("  +---+---+---+---+---+---+---+---+---+---+---+---+---+");

for(i = 0; i  10; i++){

System.out.print(" " + i + "‖");

for(j = 0; j  11; j++)

System.out.print("-" + maze[i][j] + "-‖");

System.out.println("");

System.out.println("  +---+---+---+---+---+---+---+---+---+---+---+---+---+");

}

//打印显示步数

System.out.print(printStep.toString());

}

public static boolean way(int x, int y){

if(maze[8][9] == 2)//代表递归终止条件(也就是当走出出口时标记为 2)

return true;

else{

if(maze[y][x] == 0){

maze[y][x] = 2;

/*

* 下面if判断条件代表当前坐标为基点,

* 根据判断对当前位置进行递归调用:如:

* 往上、往右上、往右、往右下、往下、

* 往左下、往左、往左上的坐标是否可走,

* 判断是否可走的返回条件是:

* 2代表可通过、1代表不能通过、3表示已经走过,但是未能走通。

*/

if(way(x, y - 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x + 1, y - 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x + 1 , y)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x + 1, y + 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x, y + 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x - 1, y + 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x - 1, y)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else if(way(x - 1, y - 1)){

printStep.append("第 " + step + " 步的所走的位置是 x = " + x + " y = " + y + "\n");

step++;

return true;

}else{

maze[y][x] = 3;

return false;

}

}else

return false;

}

}

复制代码前需要楼主自己创建个 类

Sample.way(1, 1);这句代码是我的类的静态调用,改下XXXXX.way(1, 1);

XXXXX代表你创建的类。

下面是这个程序运行后的截图

JAVA源代码怎么看

如何看JAVA源代码的问题!!

我最近刚刚转为JAVA开发,因为以前一直做DELPHI,刚一接触JAVA,感觉好不适应,公司给了一个业务的源代码学习,可是东一个接口西一个继承看的我头好大,各位有什么好方法可以看的明白些呢,谢谢各位了!!!

画成UML图,

导成UML图~~

用集成环境的编辑工具:JB,eclipse,IntelliJ IDEA等.

如何导出成UML???

用什么工具导出???

JBuilder 有这个功能

但是还是建议自己来,先画类的继承关系,然后是类之间的通信.

了解了整体关系以后,再看具体代码的实现.......

先了解什么叫 面向对象

先从整体(框架)上了解你所看的东东

然后建立面向对象概念

然后。。。。。。。。

TOGETHER 和ROSE可以导。

没办法!

只能从基础来!

总结楼上的一些建议:

1、了解基本java语法;

2、面向对象思想;

3、最好了解UML语言;

4、稍稍熟悉一种IDE的使用方法。

第二点是最基本的,难以想象在不熟悉面向对象的基础上能够真正了解一个java程序的整体结构

推荐使用 Source Insight,看源码这个是最佳选择!十分方便!我现在就在用,哈哈

先打好基础吧

比较你不是从C++转过来的

关于java源码欣赏和java源码编译的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。