java代码统计工具及完整代码

java代码统计工具及完整代码
java代码统计工具及完整代码

一个Java图形界面小程序,可以用来统计指定目录下的java代码总行数,注释行数。在win7以及xp下运行通过,其他非windows环境需要修改代码。

java代码统计工具.jar

复制以上对象(图标),粘贴到桌面即可。或者直接双击运行

已打包成jar文件,jar中含有代码。点击保存后可以使用,不能打开的可能是jdk版本不同,需要打开代码重新编译。

简介:

程序可以通过打开对话框选择文件或文件夹,也可以直接输入目录对java代码进行统计。点击确定后开始统计代码数据,统计完成后可以进行清零。

程序使用截图的方式模拟打印的功能,注意,只对这个程序进行截图。

(1)自主打印:点击后弹出对话框,让用户选择目录,保存窗体的屏幕截图。

(2)默认打印:使用默认的目录,保存这个程序的截图,快速迅速。

打印后图片名称设置为“xiaobai”加上系统此时的年月日时分秒。方便知道在此时此刻的代码量。

程序运行后如图所示:

代码块,分为三个类:

FileRowCount.java,LinkLabel.java, LinkListener.java

FileRowCount是主窗体以及界面,包括几个内部类,实现主要功能。ShotPrint与LinkListener 是打印类与监听器类。打印类根据窗体的位置以及区域,对屏幕像素进行截取,实现截图功能;监听器类实现点击标签后调用默认浏览器实现跳转到指定网址,可以修改模仿跳转到Advertisement页面的功能。

下面分别是三个类的代码:

FileRowCount.java

import java.awt.Button;

import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import https://www.360docs.net/doc/db14204249.html,bel;

import java.awt.Rectangle;

import java.awt.TextField;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import javax.swing.Box;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

public class FileRowCount extends JFrame{

/**

*

*/

private static final long serialVersionUID = 1L;

private static FileRowCount frame;

private static Label infoLabelname,infoLabelpath;//显示信息标签

static int spaceLine = 0;

static int commentLine = 0;

static int codeLine = 0;

private Label inputLabel;

private TextField inputTextField;

private Button cleanButton;

private Button yesButton;

private Label code;

private TextField codeTextField;

private Label comment;

private TextField commentTextField;

private Label space;

private TextField spaceTextField;

private Label total;

private TextField totalTextField;

private Button openButton;

private Button printButton;

private Button defaultPrintButton;

private Box baseBox,boxV1,boxV2,boxV3,boxV4,boxV5;

public void getFileName(String filePath){

File f = new File(filePath);

if (!f.isDirectory()){

if (!f.getName().endsWith(".java"))

return;

count(f);

}

else{

String[] fileList = f.list();

for (int i = 0; i < fileList.length; ++i){

File file = new File(filePath + "\\" + fileList[i]);

if (!file.isDirectory()){

if (!file.getName().endsWith(".java"))

continue;

count(file);

}

else{

getFileName(file.getPath());

}

}

}

}

public void count(File f){

String line = null;

boolean comment = false;

BufferedReader br = null;

try{

br = new BufferedReader(new FileReader(f));

line = null;

while ((line = br.readLine()) != null){

line = line.trim();

if (line.matches("^[[\\s]&&[^\\n]]*$")){

spaceLine += 1;

}

else if ((line.startsWith("//")) || ((line.startsWith("/*")) && (line.endsWith("*/")))){

commentLine += 1;

}

else if ((line.startsWith("/*")) && (!line.endsWith("*/"))){

commentLine += 1;

comment = true;

}

else if ((line.endsWith("*/")) && (comment)){

commentLine += 1;

comment = false;

}

else if (comment){

commentLine += 1;

}

else{

codeLine += 1;

}

}

}

catch (Exception e){

System.out.println(e.getStackTrace());

}

finally{

if (br != null)

try{

br.close();

br = null;

}

catch (IOException e){

e.printStackTrace();

}

}

}

public static void main(String[] args) {

frame = new FileRowCount();

frame.start();

}

void start() {

Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

int width = (int)(dimension.getHeight()/1.8);

int height = (int)(dimension.getHeight()/1.4);

inputLabel = new Label("代码位置:");

inputTextField = new TextField(20);

cleanButton = new Button("清零");

yesButton = new Button("确定");

code = new Label("代码行数:");

codeTextField = new TextField(20);

comment = new Label("注释行数:");

commentTextField = new TextField(20);

space = new Label("空格行数:");

spaceTextField = new TextField(20);

total = new Label("总计行数:");

totalTextField = new TextField(20);

openButton = new Button("打开");

printButton = new Button("自主打印");

defaultPrintButton = new Button("默认打印");

Font font = new Font("黑体",Font.PLAIN , 12);

Label xiao = new Label("小白菜QQ:1379598589");

xiao.setFont(font);

xiao.setForeground(Color.blue);

boxV1 = Box.createVerticalBox();

boxV1.add(inputLabel);

Container box1 = new Container();

// Box box1 = Box.createHorizontalBox();

Box box2 = Box.createHorizontalBox();

// Container box2 = new Container();

box1.setLayout(new FlowLayout());

// box2.setLayout(new GridLayout());

box1.add(openButton);

box1.add(inputTextField);

box2.add(yesButton);

box2.add(cleanButton);

// box2.add(yesButton);

// box2.add(cleanButton);

boxV1.add(box1);

boxV1.add(Box.createVerticalStrut(8));

boxV1.add(box2);

boxV1.add(Box.createVerticalStrut(20));

boxV2 = Box.createHorizontalBox();

boxV2.add(code);

boxV2.add(codeTextField);

boxV3 = Box.createHorizontalBox();

boxV3.add(comment);

boxV3.add(commentTextField);

boxV4 = Box.createHorizontalBox();

boxV4.add(space);

boxV4.add(spaceTextField);

boxV5 = Box.createHorizontalBox();

boxV5.add(total);

boxV5.add(totalTextField);

Container boxV6 = new Container();

// Box boxV6 = Box.createHorizontalBox(); boxV6.setLayout(new FlowLayout(FlowLayout.RIGHT));

boxV6.add(printButton);

boxV6.add(defaultPrintButton);

Box infoBox = Box.createVerticalBox(); infoLabelname = new Label();

infoLabelpath = new Label();

infoBox.add(infoLabelname);

infoBox.add(infoLabelpath);

Container authorBox = new Container();

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

authorBox.add(xiao);

baseBox = Box.createVerticalBox();

baseBox.add(boxV1);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(boxV2);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(boxV3);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(boxV4);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(boxV5);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(boxV6);

baseBox.add(Box.createVerticalStrut(10));

baseBox.add(infoBox);

baseBox.add(Box.createVerticalStrut(20));

baseBox.add(authorBox);

setSize(width, height);

setResizable(true);

// setLayout(new BorderLayout());

setLayout(new FlowLayout(FlowLayout.CENTER,30,30)); setLocationRelativeTo(null);

setTitle("java代码统计工具");

setVisible(true);

add(baseBox);

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

this.yesButton.addActionListener(new FileRowCount.yesActionListener()); this.cleanButton.addActionListener(new FileRowCount.emptyActionListener()); this.openButton.addActionListener(new OpenDialog());

this.printButton.addActionListener(new PrintResult());

defaultPrintButton.addActionListener(new DefaultPrintResult());

xiao.addMouseListener(new LinkListener());

}

class OpenDialog implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

// Object object[] = {"选定","选定"};

}

catch (Exception e1) {

e1.printStackTrace();

}

JFileChooser chooser = new JFileChooser();

chooser.setDialogTitle("选定");

chooser.setDialogType(JFileChooser.CUSTOM_DIALOG);

chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

int state = chooser.showDialog(null, "选定");

SwingUtilities.updateComponentTreeUI(chooser);

if(state==JFileChooser.APPROVE_OPTION){

String dir = chooser.getSelectedFile().getPath();

inputTextField.setText(dir);

}

}

}

class emptyActionListener

implements ActionListener{

emptyActionListener(){

}

public void actionPerformed(ActionEvent e){

FileRowCount.this.codeTextField.setText("");

https://www.360docs.net/doc/db14204249.html,mentTextField.setText("");

FileRowCount.this.spaceTextField.setText("");

FileRowCount.this.totalTextField.setText("");

FileRowCount.codeLine = https://www.360docs.net/doc/db14204249.html,mentLine = FileRowCount.spaceLine = 0;

}

}

class yesActionListener implements ActionListener{

yesActionListener(){

}

public void actionPerformed(ActionEvent e){

FileRowCount.this.getFileName(FileRowCount.this.inputTextField.getText());

FileRowCount.this.codeTextField.setText(new

Integer(FileRowCount.codeLine).toString());

https://www.360docs.net/doc/db14204249.html,mentTextField.setText(new

Integer(https://www.360docs.net/doc/db14204249.html,mentLine).toString());

FileRowCount.this.spaceTextField.setText(new

Integer(FileRowCount.spaceLine).toString());

FileRowCount.this.totalTextField.setText(new Integer(FileRowCount.codeLine + https://www.360docs.net/doc/db14204249.html,mentLine + FileRowCount.spaceLine).toString());

FileRowCount.codeLine = https://www.360docs.net/doc/db14204249.html,mentLine = FileRowCount.spaceLine = 0;

}

}

class PrintResult implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

ShotPrint cam= new ShotPrint();

Rectangle rectangle = frame.getBounds();

File fileLabel=cam.snapShot(rectangle);

infoLabelname.setText("文件名:"+fileLabel.getName());

infoLabelpath.setText("目录:"+fileLabel.getParentFile());}

}

class DefaultPrintResult implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

ShotPrint cam= new ShotPrint();

Rectangle rectangle = frame.getBounds();//获取窗体的坐标区域

File fileLabel = cam.defaultShotPrint(rectangle);;//传区域到默认的截图方法,并返回生成的图片的路径和名称

infoLabelname.setText("文件名:"+fileLabel.getName());

infoLabelpath.setText("目录:"+fileLabel.getParentFile());

}

}

}

ShotPrint.java

import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.imageio.ImageIO;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

/**

* @author LuTao

*

*/

public class ShotPrint{

private String fileName; //文件名

private String imageFormat; //图片格式

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

public ShotPrint() {

}

/**

* 默认打印,路径:d:xiaobai/

*/

public File defaultShotPrint(Rectangle rectangle) {

imageFormat= "png";

fileName = "xiaobai"+getDateTime()+"."+imageFormat;

String pathname = "d://xiaobai";

File file = new File(pathname,fileName);

writeImage(file, rectangle);

return file;

}

/**

* 自主打印

*/

public File snapShot(Rectangle rectangle) {//默认png格式

imageFormat = "png";//格式

fileName = "xiaobai"+getDateTime()+"."+imageFormat;

File path = shotDialog();

File file = new File(path,fileName);

writeImage(file, rectangle);

return file;

}

/**

* 根据传来的文件,以及窗体的坐标区域,获取屏幕像素

*/

public void writeImage(File file,Rectangle rectangle){

try {

BufferedImage frameShot = (new Robot()).createScreenCapture(rectangle);

System.out.println(file);

if(!file.exists()){

// file.mkdirs();

file.createNewFile();

}

ImageIO.write(frameShot, imageFormat, file);

}

catch (Exception ex) {

System.out.println(ex);

}

}

private String getDateTime() {

Date time=new Date();

// Calendar time = new GregorianCalendar();

SimpleDateFormat geshi=new SimpleDateFormat("yyyyMMdd_HHmmss");

String date_time=geshi.format(time);

return date_time;

}

private File shotDialog() {

File filedir = null;

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

}

catch (Exception e1) {

e1.printStackTrace();

}

JFileChooser chooser = new JFileChooser();

chooser.setDialogTitle("保存");

chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

int state = chooser.showDialog(null, "保存");

SwingUtilities.updateComponentTreeUI(chooser);

if(state==JFileChooser.APPROVE_OPTION){

filedir = chooser.getSelectedFile().getAbsoluteFile();

if(filedir==null){

// JOptionPane.showOptionDialog(parentComponent, message, title, optionType, messageType, icon, options, initialValue)

Object[] options1 = {"确定","取消"};

JOptionPane.showOptionDialog(null, "路径不存在,是否保存到默认位置:\n d:/xiaobai?",

"提示",JOptionPane.YES_NO_OPTION, https://www.360docs.net/doc/db14204249.html,RMATION_MESSAGE, null,

options1, options1[0]);

int sta = 0;

if(sta == JOptionPane.OK_OPTION){

filedir = new File("d:\\xiaobai");

}

}

}

else if(state == JFileChooser.CANCEL_OPTION) {

// if(filedir==null){

// //

JOptionPane.showOptionDialog(parentComponent, message, title, optionType, messageType, icon, options, initialValue)

// Object[] options1 = {"确定","取消"};

// JOptionPane.showOptionDialog(null, "路径不存在,是否保存到默认位置:\n d:/xiaobai?",

// "提示",JOptionPane.YES_NO_OPTION, https://www.360docs.net/doc/db14204249.html,RMATION_MESSAGE, null,

// options1, options1[0]);

// int sta = 0;

// if(sta == JOptionPane.OK_OPTION){

// filedir = new File("d:\\xiaobai");

// }

// }

}

return filedir;

}

}

LinkListener.java

import java.awt.Desktop;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.IOException;

import https://www.360docs.net/doc/db14204249.html,.URISyntaxException;

public class LinkListener implements MouseListener {

/* String blog = "https://www.360docs.net/doc/db14204249.html,/u/2930429654";

//打Advertisement,我的博客

public LinkListener() {

try {

Desktop.getDesktop().browse(

new https://www.360docs.net/doc/db14204249.html,.URI(blog));

} catch (IOException e1) {

// TODO 自动生成的catch 块

e1.printStackTrace();

} catch (URISyntaxException e1) {

// TODO 自动生成的catch 块

e1.printStackTrace();

}

// TODO 自动生成的构造函数存根

}

*/

@Override

public void mouseClicked(MouseEvent e) {

String url = "https://www.360docs.net/doc/db14204249.html,/1379598589";

try {

Desktop.getDesktop().browse(

new https://www.360docs.net/doc/db14204249.html,.URI(url));

} catch (IOException e1) {

// TODO 自动生成的catch 块

e1.printStackTrace();

} catch (URISyntaxException e1) {

// TODO 自动生成的catch 块

e1.printStackTrace();

}

}

@Override

public void mouseEntered(MouseEvent e) {

// TODO 自动生成的方法存根

}

@Override

public void mouseExited(MouseEvent e) {

// TODO 自动生成的方法存根

}

@Override

public void mousePressed(MouseEvent e) {

// TODO 自动生成的方法存根

}

@Override

public void mouseReleased(MouseEvent e) {

// TODO 自动生成的方法存根

}

}

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

JAVA课程设计钟表(含代码)

Java程序课程设计 任务书 钟表的设计与开发 1、主要内容: 创建一个钟表。 借助swing类和接口内部类的实现,在本程序中以实现Runnable接口内部类的形式创建多线程对象。 Runnable接口只定义了一个run()方法,所以调用start和sleep()方法时,必须创建Thread实例化对象。Interrupt()方法的作用是中断线程。 其作用方式是:多线程对象.interrupt()。 2、具体要求(包括技术要求等): 系统的功能要求: 1.可以记录时间的钟表。 2.熟悉JAVA中swing的组件运用,基本工具的熟练掌握。 学习并掌握以下技术:Java等。 熟练使用以下开发工具:JCreator + JDK 1.6.0_02 等实现系统上述的功能。 3、进度安排: 12月28日~ 12月29日:课程设计选题,查找参考资料 12月29日~ 1月2日:完成程序代码的编写 1月2日~ 1月3日:系统测试与完善 1月4日~ 1月5日:完成课程设计报告,准备答辩 4、主要参考文献 [1]张帆.Java范例开发大全[M].北京:清华大学出版社,2010:0-831. [2]耿祥义,张跃平.Java大学实用教程[M].北京电子工业出版社,2008:213-216

摘要 随着经济全球化的发展,推动生活节奏的加快,也给时间赋予了更重要的意义。基于方便人们更好的掌握时间,我们小组设计出了这个小时钟。 本时钟是一个基于Java语言设计而成的一个小程序,目的是显示时间,并且能调准时钟。整个程序从符合操作简便、界面友好、灵活使用的要求出发,完成调用、调整的全过程。 本课程设计报告介绍了时钟的构成,论述了目标功能模块;给出了时钟设计的步骤,程序主要所用到的Swing组件以及graphics方法。 关键词:时钟,

java编写的简单计算器代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Vector; public class Tuo { String str1="0"; //运算数1 初值一定为0 为了程序的安全 String str2="0"; //运算数2 String fh="+"; //运算符 String jg="";//结果 //状态开关重要 int k1=1;//开关1 用于选择输入方向将要写入str2或 str2 int k2=1;//开关2 符号键次数 k2>1说明进行的是2+3-9+8 这样的多符号运算 int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0 int k4=1;//开关4 str2 同上 int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉 JButton jicunqi; //寄存器记录是否连续按下符号键 Vector vt=new Vector(20,10); JFrame frame=new JFrame("sunshine---计算器"); JTextField jg_TextField=new JTextField(jg,20);//20列 JButton clear_Button=new JButton("清除"); JButton button0=new JButton("0"); JButton button1=new JButton("1"); JButton button2=new JButton("2"); JButton button3=new JButton("3"); JButton button4=new JButton("4"); JButton button5=new JButton("5"); JButton button6=new JButton("6"); JButton button7=new JButton("7"); JButton button8=new JButton("8"); JButton button9=new JButton("9"); JButton button_Dian=new JButton("."); JButton button_jia=new JButton("+"); JButton button_jian=new JButton("-"); JButton button_cheng=new JButton("*"); JButton button_chu=new JButton("/"); JButton button_dy=new JButton("="); //////////////////////////////////////////////////////////////////////// public static void main(String[] args) {

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

Java实现电子时钟

项目效果图: 源代码: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.awt.EventQueue; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JPanel; /* author: 蒋冰 */ public class MoveDraw extends JFrame{ private Draw draw = new Draw(); public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run() { try { MoveDraw frame = new MoveDraw(); frame.setVisible(true);

} catch (Exception e) { e.printStackTrace(); } } }); } public MoveDraw(){ super(); setTitle("动画"); setBounds(400,300,400,300); add(draw); Thread thread = new Thread(draw);// 创建线程对象 thread.start();// 启动线程对象 } class Draw extends JPanel implements Runnable{ Calendar calendar = new GregorianCalendar(); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); int year = calendar.get(Calendar.YEAR); int mouth = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); int week = calendar.get(Calendar.DAY_OF_WEEK); String date = year+"-"+mouth+"-"+day; String weeks[] = new String[]{"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; double theta = second * (2 * Math.PI)/60 ; double theta1 = (minute * (2 * Math.PI) + theta)/60; double theta2 = (hour*(2 * Math.PI) + theta1)/12; public void paint(Graphics g){ Graphics2D g2 = (Graphics2D) g; g2.clearRect(0, 0, 400, 300); g2.translate(draw.getWidth()/2, draw.getHeight()/2); g2.setColor(Color.blue); Font font = new Font("楷体",Font.ROMAN_BASELINE ,14); g2.setFont(font); g2.drawString(date, -25, 30); g2.drawString(weeks[week-1]+"", -15, 50); g2.setColor(Color.black); for(int i=1; i<=12; i++){ double theta = i*2*Math.PI/12;

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/db14204249.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

计算器设计的java课程设计报告

计算器设计的java 课程设计报告

华东交通大学课程设计课程设计题目:计算器设计 课程: Java程序设计 题目:计算器设计 年级:级 专业:信息一班 学号: 姓名: 组员: 指导教师:

课程设计(论文)任务书 基础学院信息与计算科学专业—1班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自年 6 月23日起至年6月27日止。 三、课程设计(论文) 地点: 计算机中心 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。

3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)丁振凡.《J ava语言程序设计》清华大学出版社 (2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http:/ /https://www.360docs.net/doc/db14204249.html, 6)课程设计进度安排 内容天数地点

java课程设计 万年历 源代码

华北科技学院 课程设计报告 面向对象程序设计(Java) 班级: 电商B09-3 姓名: 周婷玉 设计题目:__________万年历________________ 设计时间: 2011-12-28 至2012-01-06 指导教师:_______ 郭慧____________ _____ 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:___________评阅教师:_____________

课程设计说明书 1、课程设计的目的 a)掌握面向对象程序设计基本要素(封装、继承、多态) b)掌握JA VA语言常用类包及其常用方法和JA VA语言基本语法 c)掌握基于AWT的图形用户界面设计 i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、 滚动条等。 ii.事件处理机制 d)掌握布局、对话框的使用 e)掌握发布JA VA应用程序 2、功能模块简介和系统结构图 需求分析:本程序的要求为: 1.使用图形用户界面 2.能够实现日期与星期的查询 3.实现当日的时间备忘 功能设计: 1.能以月历形式显示日期与星期 2.支持用户自己输入年份,并提供月份的下拉形式来选择查询 3.添加当日行事历,储存与清除功能

JAVA编写的计算器源代码

package jsq; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; public class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel();

java简单计算器源代码

package calcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { “=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;“=”,注册事件监听器,设置1行3列的布局,添加到到西边的面板buttonzero=new JButton("0"); buttondot=new JButton("."); buttonequal=new JButton("="); (h); (h); (h); (new GridLayout(3,1)); (buttonzero); (buttondot); (buttonequal); ; }

if()==buttontozero){//归零操作 (""); } if()==buttonzero){//按键0操作 ()+"0"); flag1=());//将文本区域转换成Double类型,赋给flag1 } } else if()==buttontwo){//按键2操作 ()+"2"); flag1=()); } else if()==buttonthree){//按键3操作 ()+"3"); flag1=()); } else if()==buttonfour){//按键4操作 ()+"4"); flag1=()); } else if()==buttonfive){//按键5操作

Java完整代码

Chapter01——初识Java 1.单词 公共的、公有的:public 静态的:static 主要的:main 打印:print 2.编写类名为HelloWorld的的程序框架 public class HelloWorld{} 3.编写main()方法的框架 public static void main(String[] args){} 4.编写代码输出HelloWorld后并换行 System.out.println(“HelloWorld”); Chapter02——变量、数据类型和运算符 1.单词 字符:character 布尔:boolean 扫描器:scanner 成绩:score 名字:name 2.写出本章节中学习过的五种数据类型 int、double、char、String、boolean 3.创建扫描器对象,并接收用户输入的年龄 Scanner input=new Scanner(System.in); System.out.print(“请输入年龄:”); int age=input.nextInt(); 4.目前有整型变量custNo,请分解出它的个位、十位、百位和千位

int gewei=custNo%10; int shiwei=custNo/10%10; int baiwei=custNo/100%10; int qianwei=custNo/1000; Chapter03——选择结构(一) 1.单词 如果:if 继续:continue 随机:random 数学:math 打断:break 2.如果张浩的Java成绩大于98分,那么老师奖励他一个MP4;否则老师罚他编码, 请补全以下代码: int score=91; if(score>98){ System.out.println(“奖励一个MP4”); }else{ System.out.println(“惩罚进行编码”); } 3.某人想买车,买什么车决定于此人在银行有多少存款。 如果此人的存款超过500万,则买凯迪拉克 否则,如果此人的存款超过100万,则买帕萨特 否则,如果此人的存款超过50万,则买伊兰特 否则。如果此人的存款超过10万,则买奥拓 否则此人买捷安特,请补全以下代码: int money=52; //我的存款,单位:万元 if(money>=500){ System.out.println(“买凯迪拉克”); }else if(money>=100){

java计算器源代码(仿win7)

java计算器源代码(仿win7) import java.awt.*; import javax.swing.*; import java.awt.event.*; class Cal extends JFrame implements ActionListener,MouseListener{ JMenuBar menubar; JMenu menu_check,menu_edit,menu_help; JMenuItem menuitem_science,menuitem_check,menuitem_exit,menuitem_copy, menuitem_paste,menuitem1_copy,menuitem1_paste,menuitem_chelp,menuitem_about; JCheckBoxMenuItem menuitem_standard; JTextField ta1; int x,result2; double op1,op2,opall; private boolean end=false,flag=false,add=false,sub=false,cheng=false,chu=false,flagop2=false; JButton b_mc,b_mr,b_ms,b_mjia,b_mjian,b_tui,b_ce,b_c,b_jj, b_dui,b_7,b_8,b_9,b_chu,b_baifenhao,b_4,b_5,b_6,b_cheng, b_daoshu,b_1,b_2,b_3,b_jian,b_0,b_dian,b_jia,b_dengyu; JPanel p_all,p_button1,p_button2,p_txt,p1,p2,p3,p4,p5; private String str,resultstr;

利用JAVA实现一个时钟的小程序

JAVA课程项目报告 项目题目:利用JAVA实现一个小时钟的程序 专业班级:10软件工程 利用JAVA实现一个时钟的小程序 1.软件开发的需求分析 在当今的信息时代,时钟已经成为人们生活中必不可少

的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2.具体实现 2.1设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如

自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了小时钟的基本功能。 2.2设计方法 在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。 小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.3 运行环境 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows XP 运行环境:JDK,JCreator 2.4 程序功能图及程序相关说明 2.4.1 主功能框

简易计算器Java实训报告

实训名称: Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术学生姓名: 学号: 指导教师:张民 完成日期:

山东科技大学泰山科技学院

目录 1 实训目的 (2) 2 简易计算机的分析与设计 (2) 系统功能描述 (2) 系统模块设计 (2) 数据库结构设计 (3) 3 主要代码清单 (4)

4 程序运行与测试 (8) 5 实训总结 (10)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

java课设计算器

java课设计算器 华东交通大学理工学院 课程设计报告书 所属课程名称Java语言程序设计题目简单计算器设计 分院电信分院 专业班级12通信工程1班学号212 学生姓名 指导教师 2014 年6 月20日

java课设计算器 目录 第1章计算器机要求及内 容 (3) 第2章计算器设计............................................................. 4 第3章计算器程序代码 (14) 第4章计算器测试............................................................. 49 第5章课程设计心 得 (53) 第6章参考文献.............................................................. ....54第1章计算器内容及要求 一设计内容: 1. 实现基本的加减乘除法的运算; 2 实现常用的函数计算功能;

3. 实现将系统时间在界面上显示; 4. 实现菜单对计算器的关闭、开启及设置运算法则的操作。 二设计要求 1.使用菜单控制计算器界面的显示,关闭; 2.使用菜单控制运算的法则; 3.使用菜单显示函数运算窗口及运算; 4.数据采用手工输入方式; 5.对异常的数据进行异常处理,比如1/0的情况。

第2章计算器设计 一.设计模式 采用MVC设计模式,将模型,视图,控制分别单独完成。在模型中将视图,控制添加到其中,再分别完成视图的,控制的程序。 二.结构设计 在界面中分为四个视图的组件,控制分为按钮事件,菜单选择事件,以及键盘输入控制事件。如图1 图1

JAVA编写的计算器源代码

import class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel(); JButton btBk = new JButton(" Backspace"); JButton btCe = new JButton("Ce"); JButton btCl = new JButton("C"); JButton bt7 = new JButton("7"); JButton bt8 = new JButton("8"); JButton bt9 = new JButton("9"); JButton btDiv = new JButton("/"); JButton btSqrt = new JButton("sqrt"); JButton bt4 = new JButton("4"); JButton bt5 = new JButton("5"); JButton bt6 = new JButton("6"); JButton btMult = new JButton("*"); JButton btMol = new JButton(" % "); JButton bt1 = new JButton("1"); JButton bt2 = new JButton("2"); JButton bt3 = new JButton("3"); JButton btMinu = new JButton("-"); JButton btCoun = new JButton(" 1/x");

电子时钟java写的

package com.lw; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; public class DigitalClock extends JFrame { /** * */ private static final long serialV ersionUID = 4962111797317773666L; private JPanel contentPane; private JLabel label; /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { DigitalClock frame = new DigitalClock(); frame.setV isible(true); } catch (Exception e) { e.printStackTrace(); }

相关文档
最新文档