最近中文字幕完整版高清,宅男宅女精品国产av天堂,亚洲欧美日韩综合一区二区,最新色国产精品精品视频,中文字幕日韩欧美就去鲁

首頁(yè) > 范文大全 > 實(shí)習(xí)報(bào)告 > 實(shí)習(xí)總結(jié) > java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi)(精選4篇)

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi)

發(fā)布時(shí)間:2023-01-08

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi)(精選4篇)

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi) 篇1

  一、項(xiàng)目需求

  本程序的主要功能:

  (1)單擊“計(jì)算器”上的數(shù)字按鈕(0~9)可以設(shè)置參與計(jì)算的運(yùn)算數(shù)。

  (2)單擊“計(jì)算器”上的運(yùn)算符按鈕(+、-、_、/、1/x、sqrt、%)可以選擇運(yùn)算符號(hào)。

  (3)單擊“計(jì)算器”上的“=”按鈕顯示計(jì)算結(jié)果。

  (4)單擊“計(jì)算器”上的“復(fù)位”按鈕清空計(jì)算結(jié)果。

  (5)單擊“計(jì)算器”上的“刪除”按鈕刪除輸入的最后一個(gè)數(shù)字。

  二、項(xiàng)目設(shè)計(jì)

  在設(shè)計(jì)計(jì)算器時(shí),編寫2個(gè)Java源文件:CalculatorWindow.java、NumberButton.java計(jì)算器除了上述Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要類,如JButton,JTextField等。

  下面是2個(gè)Java源文件的總體設(shè)計(jì)。

  (1)CalculatorWindow.java(主類)

  CalculatorWindow類負(fù)責(zé)創(chuàng)建計(jì)算器的主窗口,該類含有main方法,計(jì)算器從該類開始執(zhí)行。CalculatorWindow類有4種類型的對(duì)象,分別是:LinkedList、NumberButton、JButton、JTextField。

  (2)NumberButton.java

  NumberButton類創(chuàng)建的對(duì)象是主類CalculatorWindow窗口的一個(gè)“數(shù)字”按鈕。NumberButton有一個(gè)int類型的成員temp,用于標(biāo)明所創(chuàng)建的按鈕所含有的運(yùn)算符號(hào)。NumberButton所創(chuàng)建的22個(gè)按鈕被添加到CalculatorWindow窗口中。

  1、CalculatorWindow類(主類)

  (1)數(shù)據(jù)和方法

  CalculatorWindow類是javax.swing包中JFrame的一個(gè)字類,并實(shí)現(xiàn)了ActionListener接口。類中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。

  1)成員變量

  jbArray是NumberButton型數(shù)組,每個(gè)單元是一個(gè)NumberButton類創(chuàng)建的“數(shù)字按鈕”對(duì)象,該數(shù)組長(zhǎng)度為10。numberButton數(shù)組中的“數(shù)字按鈕”含有的數(shù)字依次為0~9。每個(gè)“數(shù)字按鈕”都注冊(cè)有ActionEvent事件監(jiān)聽器。

  2)方法

  main(String args)方法是計(jì)算器程序運(yùn)行的入口方法。

  CalculatorWindow是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化。

  (2)代碼:

  import java.awt._;

  import java.awt.event._;

  import javax.swing._;

  public class jisuanqi extends JFrame implements ActionListener

  {

  private JTextField jtResult=new JTextField;

  private JButton jb_clear=new JButton("復(fù)位");

  private JButton jb_delete=new JButton("刪除");

  private static JButton jbArray={{new JButton("7"),new JButton("4"),new JButton("1"),new JButton("0")},

  {new JButton("8"),new JButton("5"),new JButton("2"),new JButton("+/-")},

  {new JButton("9"),new JButton("6"),new JButton("3"),new JButton(".")},

  {new JButton("/"),new JButton("_"),new JButton("-"),new JButton("+")},

  {new JButton("sqrt"),new JButton("%"),new JButton("1/x"),new JButton("=")}

  };

  int first=0;

  double qian;

  String fuhao;

  boolean clear=true,clickable=true;

  public jisuanqi

  {

  setFrame;

  addListener;

  }

  public void setFrame

  {

  this.setLayout(null);

  this.setTitle("計(jì)算器");

  jtResult.setBounds(120,100,310,30);

  jtResult.setEditable(false);

  jtResult.setHorizontalAlignment(JTextField.RIGHT);this.add(jtResult); jb_clear.setBounds(290,150,60,30); this.add(jb_clear); for(int i=0;i

  { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"6"); clear=true; } if(temp==jbArray[0][0])//點(diǎn)擊"7"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"7"); clear=true; }if(temp==jbArray[1][0])//點(diǎn)擊"8"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"8"); clear=true; } if(temp==jbArray[2][0])//點(diǎn)擊"9"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"9"); clear=true; } if(temp==jbArray[2][3])//點(diǎn)擊"."按鈕 { clickable=true; for (int i = 0; i < jtResult.getText.length; i++) if ('.' == jtResult.getText.charAt(i)) { clickable=false; break; } //第一層判斷是否里面含有小數(shù)點(diǎn); if(clickable==true)//第二壇判斷 jtResult.setText(jtResult.getText+"."); } try { if(temp==jbArray[3][3])//點(diǎn)擊"+"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="+";clear=false; } if(temp==jbArray[3][2])//點(diǎn)擊"-"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="-"; clear=false; } if(temp==jbArray[3][1])//點(diǎn)擊"_"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="_"; clear=false; } if(temp==jbArray[3][0])//點(diǎn)擊"/"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="/"; clear=false; } if(temp==jbArray[4][3])//點(diǎn)擊"="按鈕 { double ss=Double.parseDouble(jtResult.getText); jtResult.setText(""); if(fuhao=="+") jtResult.setText(qian+ss+""); if(fuhao=="-") jtResult.setText(qian-ss+""); if(fuhao=="_") jtResult.setText(qian_ss+""); if(fuhao=="/") jtResult.setText(qian/ss+""); clear=false;//要清空前一次的數(shù)據(jù) } if(temp==jbArray[4][0])//點(diǎn)擊"sqrt"按鈕 { String s = jtResult.getText; if(s.charAt(0) == '-') { jtResult.setText("負(fù)數(shù)不能開根號(hào)"); } else jtResult.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(jtResult.getText))));} if(temp==jbArray[4][2])//點(diǎn)擊"1/x"按鈕 { if (jtResult.getText.charAt(0) == '0'&&jtResult.getText.length == 1) { jtResult.setText("除數(shù)不能為零"); } else { boolean isDec = true; int i, j, k; String s = Double.toString(1 / Double.parseDouble(jtResult.getText)); for (i = 0; i < s.length; i++) if (s.charAt(i) == '.') break; for (j = i + 1; j < s.length; j++) if (s.charAt(j) != '0') { isDec = false; break; } if (isDec == true) { String stemp = ""; for (k = 0; k < i; k++) stemp += s.charAt(k); jtResult.setText(stemp); } else jtResult.setText(s); } clear=false; } if(temp==jbArray[4][1])//點(diǎn)擊"%"按鈕 { jtResult.setText("0"); clear=false; } if (temp == jbArray[1][3]) //點(diǎn)擊"+/-"按鈕 { boolean isNumber = true; String s = jtResult.getText; for (int i = 0; i < s.length; i++)去掉

  } { isNumber = false; break; } if (isNumber == true) { //如果當(dāng)前字符串首字母有'-'號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào) if(s.charAt(0) == '-') { jtResult.setText(""); for (int i = 1; i < s.length; i++) { char a = s.charAt(i); jtResult.setText(jtResult.getText + a); } } //如果當(dāng)前字符串第一個(gè)字符不是符號(hào),則添加一個(gè)符號(hào)在首字母處 else jtResult.setText('-' + s); } } } catch(Exception eee) { System.out.println("運(yùn)算時(shí),首先輸入數(shù)字或字符"); jtResult.setText("運(yùn)算出錯(cuò)"); clear=false; } } public static void main(String args) { new jisuanqi; }

  (3)效果圖

  三、項(xiàng)目總結(jié)

  本程序?yàn)镴AVA中簡(jiǎn)單的計(jì)算器,主要實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)計(jì)算,刪除,復(fù)位等功能。運(yùn)用JAVA中的類,數(shù)組,成員變量等知識(shí),有簡(jiǎn)單的界面,按鈕等。

  本程序還存在一定的缺陷,功能簡(jiǎn)單,界面還需美化等。

  四、心得體會(huì)

  編寫一個(gè)程序,無(wú)論會(huì)實(shí)現(xiàn)什么功能,都必須掌握這門語(yǔ)言的要領(lǐng)、基本知識(shí)及工具的運(yùn)用,同時(shí)別的輔助工具也要有一定的了解。因此要更好的運(yùn)用Java語(yǔ)言編程還需更深入的學(xué)習(xí),這樣才能把一個(gè)程序的功能實(shí)現(xiàn)的淋漓盡致,界面才會(huì)更加美觀。

  同時(shí)編寫這個(gè)程序讓我更好的理解了數(shù)組、類的運(yùn)用及事件的監(jiān)聽和獲取等功能。

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi) 篇2

  一、項(xiàng)目需求

  本程序的主要功能:

  (1)單擊“計(jì)算器”上的數(shù)字按鈕(0~9)可以設(shè)置參與計(jì)算的運(yùn)算數(shù)。

  (2)單擊“計(jì)算器”上的運(yùn)算符按鈕(+、-、*、/、1/x、sqrt、%)可以選擇運(yùn)算符號(hào)。

  (3)單擊“計(jì)算器”上的“=”按鈕顯示計(jì)算結(jié)果。

  (4)單擊“計(jì)算器”上的“復(fù)位”按鈕清空計(jì)算結(jié)果。

  (5)單擊“計(jì)算器”上的“刪除”按鈕刪除輸入的最后一個(gè)數(shù)字。

  二、項(xiàng)目設(shè)計(jì)

  在設(shè)計(jì)計(jì)算器時(shí),編寫2個(gè)Java源文件:CalculatorWindow.java、NumberButton.java計(jì)算器除了上述Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要類,如JButton,JTextField等。

  下面是2個(gè)Java源文件的總體設(shè)計(jì)。

  (1)CalculatorWindow.java(主類)

  CalculatorWindow類負(fù)責(zé)創(chuàng)建計(jì)算器的主窗口,該類含有main方法,計(jì)算器從該類開始執(zhí)行。CalculatorWindow類有4種類型的對(duì)象,分別是:LinkedList、NumberButton、JButton、JTextField。

  (2)NumberButton.java

  NumberButton類創(chuàng)建的對(duì)象是主類CalculatorWindow窗口的一個(gè)“數(shù)字”按鈕。NumberButton有一個(gè)int類型的成員temp,用于標(biāo)明所創(chuàng)建的按鈕所含有的運(yùn)算符號(hào)。NumberButton所創(chuàng)建的22個(gè)按鈕被添加到CalculatorWindow窗口中。

  1、CalculatorWindow類(主類)

  (1)數(shù)據(jù)和方法

  CalculatorWindow類是javax.swing包中JFrame的一個(gè)字類,并實(shí)現(xiàn)了ActionListener接口。類中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。

  1)成員變量

  jbArray是NumberButton型數(shù)組,每個(gè)單元是一個(gè)NumberButton類創(chuàng)建的“數(shù)字按鈕”對(duì)象,該數(shù)組長(zhǎng)度為10。numberButton數(shù)組中的“數(shù)字按鈕”含有的數(shù)字依次為0~9。每個(gè)“數(shù)字按鈕”都注冊(cè)有ActionEvent事件監(jiān)聽器。

  2)方法

  main(String args)方法是計(jì)算器程序運(yùn)行的入口方法。

  CalculatorWindow是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化。

  (2)代碼:

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class jisuanqi extends JFrame implements ActionListener

  {

  private JTextField jtResult=new JTextField;

  private JButton jb_clear=new JButton("復(fù)位");

  private JButton jb_delete=new JButton("刪除");

  private static JButton jbArray={{new JButton("7"),new JButton("4"),new JButton("1"),new JButton("0")},

  {new JButton("8"),new JButton("5"),new JButton("2"),new JButton("+/-")},

  {new JButton("9"),new JButton("6"),new JButton("3"),new JButton(".")},

  {new JButton("/"),new JButton("*"),new JButton("-"),new JButton("+")},

  {new JButton("sqrt"),new JButton("%"),new JButton("1/x"),new JButton("=")}

  };

  int first=0;

  double qian;

  String fuhao;

  boolean clear=true,clickable=true;

  public jisuanqi

  {

  setFrame;

  addListener;

  }

  public void setFrame

  {

  this.setLayout(null);

  this.setTitle("計(jì)算器");

  jtResult.setBounds(120,100,310,30);

  jtResult.setEditable(false);

  jtResult.setHorizontalAlignment(JTextField.RIGHT);this.add(jtResult); jb_clear.setBounds(290,150,60,30); this.add(jb_clear); for(int i=0;i

  { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"6"); clear=true; } if(temp==jbArray[0][0])//點(diǎn)擊"7"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"7"); clear=true; }if(temp==jbArray[1][0])//點(diǎn)擊"8"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"8"); clear=true; } if(temp==jbArray[2][0])//點(diǎn)擊"9"按鈕 { if(clear==false) jtResult.setText(""); jtResult.setText(jtResult.getText+"9"); clear=true; } if(temp==jbArray[2][3])//點(diǎn)擊"."按鈕 { clickable=true; for (int i = 0; i < jtResult.getText.length; i++) if ('.' == jtResult.getText.charAt(i)) { clickable=false; break; } //第一層判斷是否里面含有小數(shù)點(diǎn); if(clickable==true)//第二壇判斷 jtResult.setText(jtResult.getText+"."); } try { if(temp==jbArray[3][3])//點(diǎn)擊"+"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="+";clear=false; } if(temp==jbArray[3][2])//點(diǎn)擊"-"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="-"; clear=false; } if(temp==jbArray[3][1])//點(diǎn)擊"*"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="*"; clear=false; } if(temp==jbArray[3][0])//點(diǎn)擊"/"按鈕 { qian=Double.parseDouble(jtResult.getText); fuhao="/"; clear=false; } if(temp==jbArray[4][3])//點(diǎn)擊"="按鈕 { double ss=Double.parseDouble(jtResult.getText); jtResult.setText(""); if(fuhao=="+") jtResult.setText(qian+ss+""); if(fuhao=="-") jtResult.setText(qian-ss+""); if(fuhao=="*") jtResult.setText(qian*ss+""); if(fuhao=="/") jtResult.setText(qian/ss+""); clear=false;//要清空前一次的數(shù)據(jù) } if(temp==jbArray[4][0])//點(diǎn)擊"sqrt"按鈕 { String s = jtResult.getText; if(s.charAt(0) == '-') { jtResult.setText("負(fù)數(shù)不能開根號(hào)"); } else jtResult.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(jtResult.getText))));} if(temp==jbArray[4][2])//點(diǎn)擊"1/x"按鈕 { if (jtResult.getText.charAt(0) == '0'&&jtResult.getText.length == 1) { jtResult.setText("除數(shù)不能為零"); } else { boolean isDec = true; int i, j, k; String s = Double.toString(1 / Double.parseDouble(jtResult.getText)); for (i = 0; i < s.length; i++) if (s.charAt(i) == '.') break; for (j = i + 1; j < s.length; j++) if (s.charAt(j) != '0') { isDec = false; break; } if (isDec == true) { String stemp = ""; for (k = 0; k < i; k++) stemp += s.charAt(k); jtResult.setText(stemp); } else jtResult.setText(s); } clear=false; } if(temp==jbArray[4][1])//點(diǎn)擊"%"按鈕 { jtResult.setText("0"); clear=false; } if (temp == jbArray[1][3]) //點(diǎn)擊"+/-"按鈕 { boolean isNumber = true; String s = jtResult.getText; for (int i = 0; i < s.length; i++)去掉

  } { isNumber = false; break; } if (isNumber == true) { //如果當(dāng)前字符串首字母有'-'號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào) if(s.charAt(0) == '-') { jtResult.setText(""); for (int i = 1; i < s.length; i++) { char a = s.charAt(i); jtResult.setText(jtResult.getText + a); } } //如果當(dāng)前字符串第一個(gè)字符不是符號(hào),則添加一個(gè)符號(hào)在首字母處 else jtResult.setText('-' + s); } } } catch(Exception eee) { System.out.println("運(yùn)算時(shí),首先輸入數(shù)字或字符"); jtResult.setText("運(yùn)算出錯(cuò)"); clear=false; } } public static void main(String args) { new jisuanqi; }

  (3)效果圖

  三、項(xiàng)目總結(jié)

  本程序?yàn)镴AVA中簡(jiǎn)單的計(jì)算器,主要實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)計(jì)算,刪除,復(fù)位等功能。運(yùn)用JAVA中的類,數(shù)組,成員變量等知識(shí),有簡(jiǎn)單的界面,按鈕等。

  本程序還存在一定的缺陷,功能簡(jiǎn)單,界面還需美化等。

  四、心得體會(huì)

  編寫一個(gè)程序,無(wú)論會(huì)實(shí)現(xiàn)什么功能,都必須掌握這門語(yǔ)言的要領(lǐng)、基本知識(shí)及工具的運(yùn)用,同時(shí)別的輔助工具也要有一定的了解。因此要更好的運(yùn)用Java語(yǔ)言編程還需更深入的學(xué)習(xí),這樣才能把一個(gè)程序的功能實(shí)現(xiàn)的淋漓盡致,界面才會(huì)更加美觀。

  同時(shí)編寫這個(gè)程序讓我更好的理解了數(shù)組、類的運(yùn)用及事件的監(jiān)聽和獲取等功能。

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi) 篇3

  作為就業(yè)培訓(xùn),項(xiàng)目的好壞對(duì)培訓(xùn)質(zhì)量的影響非常大,常常是決定性的作用,簡(jiǎn)單總結(jié)為以下幾點(diǎn):

  1、項(xiàng)目一定要全新的項(xiàng)目,不能是以前做過(guò)的

  2、項(xiàng)目一定要企業(yè)真實(shí)項(xiàng)目,不能是精簡(jiǎn)以后的,不能脫離實(shí)際應(yīng)用系統(tǒng)

  3、在開發(fā)時(shí)要和企業(yè)的開發(fā)保持一致

  4、在做項(xiàng)目的時(shí)候不應(yīng)該有參考代碼

  長(zhǎng)話短說(shuō)就是以上幾點(diǎn),如果你想要更多的了解,可以繼續(xù)往后看。

  一:項(xiàng)目的地位

  因?yàn)閰⒓泳蜆I(yè)培訓(xùn)的學(xué)員很多都是有一定的計(jì)算機(jī)基礎(chǔ),大部分都具備一定的編程基礎(chǔ),尤其是在;蛘呤莿偖厴I(yè)的學(xué)生,多少都有一些基礎(chǔ)。

  他們欠缺的主要是兩點(diǎn):

  (1)不能全面系統(tǒng)的、深入的掌握某種技術(shù),也就是會(huì)的挺多,但都是皮毛,不能滿足就業(yè)的需要。

  (2)沒(méi)有任何實(shí)際的開發(fā)經(jīng)驗(yàn),完全是想象中學(xué)習(xí),考試還行,一到實(shí)際開發(fā)和應(yīng)用就歇菜了。

  解決的方法就是通過(guò)項(xiàng)目練習(xí),對(duì)所學(xué)知識(shí)進(jìn)行深化,然后通過(guò)項(xiàng)目來(lái)獲取實(shí)際開發(fā)的經(jīng)驗(yàn),從而彌補(bǔ)這些不足,盡快達(dá)到企業(yè)的實(shí)際要求。

  二:如何選擇項(xiàng)目

  項(xiàng)目既然那么重要,肯定不能隨隨便便找項(xiàng)目,那么究竟如何來(lái)選擇呢?根據(jù)java的研究和實(shí)踐經(jīng)驗(yàn)總結(jié),選擇項(xiàng)目的時(shí)候要注意以下方面:

  1:項(xiàng)目不能太大,也不能太小

  這個(gè)要根據(jù)項(xiàng)目練習(xí)的階段,練習(xí)的時(shí)間,練習(xí)的目標(biāo)來(lái)判斷。不能太大,太大了做不完,也不能太小,太小了沒(méi)有意義,達(dá)不到練習(xí)的目的。

  2:項(xiàng)目不能脫離實(shí)際應(yīng)用系統(tǒng)

  項(xiàng)目應(yīng)該是實(shí)際的系統(tǒng),或者是實(shí)際系統(tǒng)的簡(jiǎn)化和抽象,不能夠是沒(méi)有實(shí)戰(zhàn)意義的教學(xué)性或者是純練習(xí)性的項(xiàng)目。因?yàn)榕嘤?xùn)的時(shí)間有限,必須讓學(xué)員盡快地融入到實(shí)際項(xiàng)目的開發(fā)當(dāng)中去。任何人接受和掌握一個(gè)東西都需要時(shí)間去適應(yīng),需要重復(fù)幾次才能夠真正掌握,所以每個(gè)項(xiàng)目都必須跟實(shí)際應(yīng)用掛鉤。

  3:項(xiàng)目應(yīng)能覆蓋所學(xué)的主要知識(shí)點(diǎn)

  學(xué)以致用,學(xué)完的知識(shí)點(diǎn)需要到應(yīng)用中使用,才能夠真正理解和掌握,再說(shuō)了,軟件開發(fā)是一個(gè)動(dòng)手能力要求很高的行業(yè),什么算會(huì)了,那就是能夠做出來(lái),寫出代碼來(lái),把問(wèn)題解決了,你就算會(huì)了。

  4:最后綜合項(xiàng)目一定要是實(shí)際應(yīng)用系統(tǒng)

  學(xué)員經(jīng)過(guò)這個(gè)項(xiàng)目的練習(xí),就要走上實(shí)際的工作崗位了,如果這個(gè)系統(tǒng)還達(dá)不到實(shí)際應(yīng)用系統(tǒng)的標(biāo)準(zhǔn),學(xué)員練習(xí)過(guò)后也還是達(dá)不到企業(yè)實(shí)際的需要,那么這個(gè)培訓(xùn)應(yīng)該說(shuō)質(zhì)量就不高了。理想的狀況是這個(gè)項(xiàng)目就是實(shí)際項(xiàng)目,到時(shí)候?qū)W員就業(yè)到另外一個(gè)公司,不過(guò)是換個(gè)地方干活而已,完全沒(méi)有技能上的問(wèn)題。

  三:java怎么選擇項(xiàng)目

  這個(gè)不是靠想象,而是根據(jù)實(shí)際的情況一步一步分析出來(lái)的(呵呵要賣弄一下:這也算是邏輯思維),當(dāng)然這里只是討論方法,不涉及具體的項(xiàng)目案例。

  我們可以采用倒推的方式來(lái)分析:

  (1)最終的項(xiàng)目一定是真實(shí)的項(xiàng)目,也就是要把學(xué)員訓(xùn)練到能夠獨(dú)立開發(fā)實(shí)際應(yīng)用,通常我們還不能選最簡(jiǎn)單的項(xiàng)目,因?yàn)閷W(xué)員的吸收還要有一個(gè)折扣,所以最終的項(xiàng)目應(yīng)該選實(shí)際項(xiàng)目中中等難度的項(xiàng)目

  (2)最終項(xiàng)目定下來(lái)過(guò)后,開始分解這個(gè)項(xiàng)目,看看為了達(dá)到完成這個(gè)項(xiàng)目需要哪些技術(shù)和知識(shí)點(diǎn),以及每部分知識(shí)點(diǎn)的深度,然后定出每個(gè)分階段的任務(wù)

  (3)然后開始選擇分階段的項(xiàng)目,分階段的項(xiàng)目應(yīng)該比剛才分析出來(lái)的分階段任務(wù)稍稍復(fù)雜點(diǎn),這樣才能達(dá)到訓(xùn)練的目標(biāo)。定下分階段項(xiàng)目后,同樣去分解,定出為了完成他所需要的各部分知識(shí)點(diǎn)和深度。

  (4)然后是選擇上課期間的演示項(xiàng)目,演示的項(xiàng)目是為了做分階段項(xiàng)目服務(wù)的,可以認(rèn)為是分階段項(xiàng)目的分階段項(xiàng)目

  (5)最終把要求掌握的知識(shí)點(diǎn)和要求掌握的深度,分散到日常教學(xué)和練習(xí)中。

  好了,把上面的分析用正向描述就是:

  日常教學(xué)和練習(xí)中學(xué)習(xí)和掌握的知識(shí) ==〉演示項(xiàng)目 ==〉分階段項(xiàng)目 ==〉綜合項(xiàng)目 ==〉勝任企業(yè)實(shí)際開發(fā)需要。

  附注:有了好的項(xiàng)目還要有好的訓(xùn)練方法(這個(gè)另外立文討論),最最基本和重要的一條就是:絕對(duì)要指導(dǎo)學(xué)生親自動(dòng)手做,而不是看和聽,所以盡量不要選擇有現(xiàn)成代碼的項(xiàng)目,演示用的項(xiàng)目也最好不配發(fā)代碼,讓學(xué)生能夠跟著做出來(lái)才是真的掌握了。

  上面闡述了java對(duì)項(xiàng)目的態(tài)度和基本選擇方法,這里再把其中幾個(gè)重要的、與眾不同的特點(diǎn)闡述如下:

  1:真項(xiàng)目

  項(xiàng)目一定要真實(shí),要是企業(yè)實(shí)際應(yīng)用的,不能是教學(xué)性的項(xiàng)目,否則會(huì)脫離實(shí)達(dá)不到項(xiàng)目實(shí)訓(xùn)的效果。還有一個(gè)一定要是最新的項(xiàng)目,企業(yè)的要求也是在不斷變化的,應(yīng)用技術(shù)的方向和層次也在不斷變化,這些都體現(xiàn)在最新項(xiàng)目的要求上,舊項(xiàng)目所要求的技術(shù)和層次很可能已經(jīng)過(guò)時(shí)了,根本達(dá)不到訓(xùn)練的目的。

  java的做法是:沒(méi)有固定項(xiàng)目,每個(gè)班做項(xiàng)目之前會(huì)從企業(yè)獲取最新的項(xiàng)目需求,然后經(jīng)過(guò)挑選和精心設(shè)計(jì),以保證既能訓(xùn)練技術(shù),又能得到實(shí)際的開發(fā)經(jīng)驗(yàn)。這樣實(shí)現(xiàn)了跟企業(yè)的同步,企業(yè)做什么,我們就學(xué)什么,然后也跟著做什么。

  2:真流程

  開發(fā)的流程也要跟企業(yè)的實(shí)際開發(fā)保持一致。從項(xiàng)目立項(xiàng)開始,到需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試的各個(gè)環(huán)節(jié),都要完全按照真實(shí)的開發(fā)流程來(lái)做。

  java的主力老師都是實(shí)戰(zhàn)出身,在java開發(fā)方面都至少有七年以上的開發(fā)經(jīng)驗(yàn),同時(shí)具備多年的項(xiàng)目管理經(jīng)驗(yàn),所以能夠完全按照企業(yè)開發(fā)的流程來(lái)訓(xùn)練學(xué)生。

  3:真環(huán)境

  開發(fā)的環(huán)境也要跟企業(yè)一樣,包括常用的開發(fā)工具、開發(fā)平臺(tái)、應(yīng)用服務(wù)器、常用插件、測(cè)試工具、項(xiàng)目管理工具、項(xiàng)目管理文檔等等。

  java的做法是:構(gòu)建跟企業(yè)完全一樣的環(huán)境,然后跟企業(yè)開發(fā)一樣,分團(tuán)隊(duì)開發(fā)。老師就相當(dāng)于項(xiàng)目經(jīng)理,一個(gè)班分成多個(gè)小組,每個(gè)組有自己的team leader,大家分工合作,共同完成項(xiàng)目。

  4:真開發(fā)

  這是java最與眾不同的一點(diǎn),java深知:軟件是做出來(lái)的,而不是聽出來(lái)或者看出來(lái)的,企業(yè)需要能實(shí)際開發(fā)的人員,而不是只聽過(guò)、看過(guò)但不能做的人。所以java非常強(qiáng)調(diào):項(xiàng)目一定要讓學(xué)生動(dòng)手寫出來(lái)。

  java的做法是:老師做為項(xiàng)目經(jīng)理,帶領(lǐng)著大家一起去做需求分析、概要設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、重要業(yè)務(wù)流程的分析設(shè)計(jì)等,然后由學(xué)生們分團(tuán)隊(duì)進(jìn)行開發(fā),實(shí)現(xiàn)整個(gè)項(xiàng)目。這里有幾個(gè)與眾不同:

  (1):現(xiàn)場(chǎng)帶領(lǐng)學(xué)生一起做分析和設(shè)計(jì),而不是預(yù)先做好了來(lái)講講。因?yàn)樾枰獙W(xué)生學(xué)習(xí)的是分析設(shè)計(jì)的過(guò)程和方法,而不是已經(jīng)做好的結(jié)果。

  (2):java選用的項(xiàng)目基本都是企業(yè)最新的項(xiàng)目,很多都是java的學(xué)生和企業(yè)在同期開發(fā),所以是不配發(fā)源代碼的。這樣也斷絕了學(xué)生的依賴思想,認(rèn)認(rèn)真真去開發(fā)?赡苡型瑢W(xué)會(huì)問(wèn):為什么不選擇有源代碼的項(xiàng)目呢,那樣還可以參考學(xué)習(xí)啊!

  這是一個(gè)典型的誤區(qū):覺得通過(guò)看人家的代碼能夠加快自己的學(xué)習(xí)。這個(gè)方法對(duì)有經(jīng)驗(yàn)的人來(lái)講是對(duì)的,但是對(duì)于還在學(xué)習(xí)期間,沒(méi)有經(jīng)驗(yàn)的學(xué)員來(lái)講,就是一個(gè)認(rèn)識(shí)的誤區(qū)了。因?yàn)槟阋苍S能看懂代碼的語(yǔ)法,但根本看不懂代碼背后的含義,看不懂代碼的設(shè)計(jì),看不懂為什么要這么實(shí)現(xiàn),看不懂代碼所體現(xiàn)的思想,其實(shí),看了跟沒(méi)看沒(méi)有多大區(qū)別。

  事實(shí)上,java界最不缺的就是代碼了,那么多開源軟件,小到一個(gè)工具,到企業(yè)級(jí)erp都有開源的,而且很多都是大師級(jí)的作品,說(shuō)實(shí)話比你參考的那些代碼質(zhì)量高多了,但是又有多少人能真正看明白呢,原因就在于達(dá)不到那個(gè)水平,看不懂代碼背后所體現(xiàn)的設(shè)計(jì)和思想以及為什么要這么做,效果也就不好了。

  當(dāng)然不排除有這樣的高人是能夠完全能理解和掌握這些大師級(jí)作品的,但估計(jì)不會(huì)是剛開始學(xué)習(xí)java開發(fā)的學(xué)生,所以java根據(jù)多年的培訓(xùn)經(jīng)驗(yàn),友情提示:在初學(xué)階段,看一千遍,聽一千遍,都不如自己動(dòng)手寫一遍所達(dá)到的學(xué)習(xí)效果。自己能寫出來(lái)的功能才是你真正掌握的功能,而不是你看得代碼或者是聽老師講的,就算講過(guò)看過(guò),但是自己做不出來(lái),那都不算會(huì)。

  (3):java在課堂上除了帶領(lǐng)學(xué)生去分析設(shè)計(jì)外,還會(huì)分析一些重點(diǎn)、難點(diǎn)功能的實(shí)現(xiàn)機(jī)制和原理,然后指導(dǎo)學(xué)生去實(shí)現(xiàn)。

  5:真技術(shù)

  java在每個(gè)項(xiàng)目中,特別會(huì)抽取有難度的部分讓學(xué)生們?cè)诶蠋熤笇?dǎo)下實(shí)現(xiàn),專門啃硬骨頭,那才能真正鍛煉學(xué)生的開發(fā)能力。

  比如:在做oa類的項(xiàng)目時(shí),會(huì)重點(diǎn)去做工作流、公文收發(fā)、在線office控制等;在做crm類項(xiàng)目時(shí):會(huì)重點(diǎn)去做銷售自動(dòng)化和市場(chǎng)塊的業(yè)務(wù);在做人力資源類項(xiàng)目的時(shí)候會(huì)重點(diǎn)去做人力跟蹤和人力評(píng)測(cè)模型等......

  java在每個(gè)項(xiàng)目中,都會(huì)使用目前企業(yè)最新最流行的技術(shù),按照最新的難度去要求,從而讓學(xué)員能更符合企業(yè)的需要。

  6:真經(jīng)驗(yàn)

  java的項(xiàng)目都是企業(yè)最新的真實(shí)項(xiàng)目,經(jīng)過(guò)開發(fā)訓(xùn)練,學(xué)員能夠積累足夠的真實(shí)的開發(fā)經(jīng)驗(yàn),以勝任企業(yè)的工作需要。在進(jìn)行項(xiàng)目分析時(shí),還會(huì)全面講解項(xiàng)目所要求的業(yè)務(wù),讓學(xué)員從業(yè)務(wù)和技術(shù)上都能充分積累。

  7:真實(shí)力

  作為就業(yè)培訓(xùn),項(xiàng)目的好壞對(duì)培訓(xùn)質(zhì)量的影響非常大,常常是決定性的作用。這篇文章是關(guān)于在學(xué)習(xí)java軟件開發(fā)時(shí)練習(xí)項(xiàng)目的總結(jié),簡(jiǎn)單總結(jié)為以下幾點(diǎn):事實(shí)上,不采用有源代碼的教學(xué)性項(xiàng)目對(duì)java的要求非常高。 試想一下,如果項(xiàng)目分發(fā)下去,老師帶著分析后,學(xué)生都不會(huì)做會(huì)出現(xiàn)什么樣的后果?這對(duì)java的教學(xué)質(zhì)量提出了極高的要求,如果教學(xué)質(zhì)量達(dá)不到讓學(xué)員獨(dú)立開發(fā)的水平,對(duì)依靠質(zhì)量取勝和口碑發(fā)展的java將是毀滅性的。

  另外一個(gè),由于是全真的項(xiàng)目,在開發(fā)的過(guò)程中,肯定會(huì)有很多的問(wèn)題出現(xiàn),這些都要老師去解決,由于不像教學(xué)項(xiàng)目那樣預(yù)先做好,又需要老師能很快地解決各個(gè)問(wèn)題,這對(duì)老師的真實(shí)開發(fā)水平有極高的要求,這可是需要真功夫的。

  總結(jié)

  總之,java通過(guò)真實(shí)的項(xiàng)目,真實(shí)的開發(fā)環(huán)境和開發(fā)流程,指導(dǎo)學(xué)員去真正開發(fā),讓學(xué)員得到真正的鍛煉,收獲真正的開發(fā)能力。

  有了真正的開發(fā)能力==>能夠勝任企業(yè)的實(shí)際需要==>高薪好工作。

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi) 篇4

  一、 課程設(shè)計(jì)名稱及主要內(nèi)容:

  1、 課程設(shè)計(jì)名稱:

  時(shí)鐘動(dòng)畫

  2、 課程設(shè)計(jì)的主要內(nèi)容:

  以下題目任選一個(gè):

  (1)圖形界面類,如科學(xué)計(jì)算器、繪圖板、日歷、游戲程序等。

  (2)動(dòng)畫類,編制功能較復(fù)雜、效果較好的Applet動(dòng)畫程序。

  (3)數(shù)據(jù)處理類,如學(xué)生學(xué)籍、課程成績(jī)、圖書編目、倉(cāng)庫(kù)貨物等數(shù)據(jù)錄入查詢程序。

  (4)其他類型,自選題目,須經(jīng)指導(dǎo)老師同意。

  我所選的題目是動(dòng)畫類的Applet動(dòng)畫程序,主要任務(wù)是用Java程序設(shè)計(jì)一個(gè)時(shí)鐘動(dòng)畫。

  二、 程序的設(shè)計(jì)思想和流程圖:

  1、 設(shè)計(jì)思想:

  現(xiàn)在的各種時(shí)鐘花樣百出,千奇百怪,功能亦是越來(lái)越先進(jìn)了。我很喜歡這些各式各樣的時(shí)鐘,所以希望自己也能設(shè)計(jì)出一個(gè)來(lái)。于是,我希望自己能夠用自己所學(xué)的Java知識(shí)設(shè)計(jì)出一個(gè)自己的時(shí)鐘動(dòng)畫,即使是最簡(jiǎn)單的,但我相信這是暫時(shí)的。只要我能夠努力學(xué)好Java知識(shí),將來(lái)一定能夠設(shè)計(jì)出更好更完美的時(shí)鐘動(dòng)畫。

  2、 流程圖:

  三、 程序介紹:

  1、設(shè)計(jì)方法及步驟 :

  ? 題目分析:

  根據(jù)《課程設(shè)計(jì)任務(wù)書》要求,分析題目,構(gòu)造出程序的基本思路(算法設(shè)計(jì))。畫出程序

  設(shè)計(jì)結(jié)構(gòu)框圖。

  ? 構(gòu)造數(shù)據(jù)結(jié)構(gòu):

  根據(jù)程序結(jié)構(gòu)框圖和題目分析結(jié)果(采用算法),構(gòu)造程序所用各項(xiàng)數(shù)據(jù),各種窗體及他們

  之間的聯(lián)系。

  ? 構(gòu)造程序框架:

  在窗體確定之后,根據(jù)算法設(shè)計(jì)出所用各個(gè)窗體之間的調(diào)用關(guān)系。

  ? 程序設(shè)計(jì):

 、佼嫵龀绦蚬δ芸驁D和結(jié)構(gòu)框圖;

 、诟鶕(jù)框圖設(shè)計(jì)程序;

  ③編譯程序調(diào)試程序,使程序可以使用;

 、芡陚涑绦蚬δ。

  ? 程序打包:

  所設(shè)計(jì)程序匯總,將程序分類歸入相應(yīng)子目錄,完成程序所有設(shè)計(jì)要求。

  2、完成情況:

  經(jīng)過(guò)一系列的Java程序代碼的設(shè)計(jì),雖然過(guò)程中遇到了許多的問(wèn)題,但是最終解決了所有的問(wèn)題,準(zhǔn)確的設(shè)計(jì)出了時(shí)鐘動(dòng)畫,運(yùn)行情況正常。

  3、類的關(guān)系:

  “public class AnimatorDemo”是公共類,且是程序中的唯一的一個(gè)類。

  4、構(gòu)造方法、成員變量和成員方法的功能說(shuō)明:

  “Thread timer”用于顯示時(shí)鐘的線程;

  “SimpleDateFormat formatter”用于格式化時(shí)間顯示; “String lastdate”用于保存當(dāng)前時(shí)間的字符串;

  “Font clockFaceFont”用于設(shè)置顯示時(shí)鐘里面的數(shù)字的字體; “Date currentDate”用于顯示當(dāng)前時(shí)間;

  “Color handColor”用于顯示時(shí)針、分針和表盤的顏色; “Color numberColor” 用于顯示秒針和數(shù)字的顏色; “public void init”用于設(shè)計(jì)時(shí)鐘格式并捕捉異常;

  “public void plotpoints(int x0, int y0, int x, int y, Graphics g)” 用于計(jì)算四分之一的圓弧;

  “public void circle(int x0, int y0, int r, Graphics g”) 用Bresenham算法來(lái)畫圓,其中(x0,y0)是圓的中心,r為圓半徑; “public void paint(Graphics g)”用于運(yùn)行時(shí)鐘程序; “public void start” applet的啟動(dòng)方法;

  “public void stop” applet的停止方法;

  “public void run” 線程的run方法。

  四、 遇到的問(wèn)題和解決方法:

  1、 問(wèn)題:

  ? 寫程序的時(shí)候,由于對(duì)有些Java知識(shí)不懂,所以有些想要表達(dá)的意思無(wú)法用Java代碼準(zhǔn)確的表達(dá)出來(lái),老是出錯(cuò)或者無(wú)法寫下去;

  ? 一開始,自己準(zhǔn)備的參考資料不足,無(wú)法在遇到問(wèn)題時(shí)有效的利用參考資料解決,遇到不懂的問(wèn)題和不會(huì)用程序語(yǔ)言表達(dá)的問(wèn)題時(shí),只能留在那里,無(wú)法解決,結(jié)果問(wèn)題最后越積越多,導(dǎo)致我無(wú)法再把程序?qū)懴氯?

  ? 一開始,對(duì)于老師布置的作業(yè)題目,我不太懂,無(wú)法進(jìn)行有效而且清晰的分析,自然也無(wú)法繼續(xù)下去寫程序了,耽誤了較多的時(shí)間;

  ? 對(duì)于要寫流程圖,一開始我并不懂是什么意思,也不知道怎么去寫。

  2、 解決方法:

  ? 對(duì)于那些不懂的Java知識(shí)和不會(huì)寫的程序,我通過(guò)向同學(xué)尋求幫助和利用參考資料書,最終都解決了;

  ? 對(duì)于自己參考資料不足的缺點(diǎn),我在下課后,去了圖書館借閱有關(guān)方面的Java參考資料書,并且向同學(xué)借閱了他們所擁有的資料書,然后又利用自己的電腦上網(wǎng)查找了一些有關(guān)方面的參考知識(shí),終于在最后解決了資料不足的缺點(diǎn);

  ? 對(duì)于不懂的題目,我也通過(guò)向多個(gè)同學(xué)進(jìn)行詢問(wèn),最終弄懂了老師布置的題目所要求的內(nèi)容;

  ? 至于流程圖,在我向同學(xué)詢問(wèn)過(guò),并且上網(wǎng)進(jìn)行了一番查找和咨詢后,也總算弄懂了流程圖的含義,并努力寫了出來(lái)。

  五、 認(rèn)識(shí)、感想、建議:

  六、 參考資料:

  《精通Java——JDK、數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)、Web開發(fā)》

  《Java進(jìn)階教程》

  《零起點(diǎn)Java應(yīng)用編程》

  《Java程序設(shè)計(jì)應(yīng)用基礎(chǔ)教程》

  七、 附加源程序:

  import java.util._;

  import java.awt._;

  import java.applet._;

  import java.text._;

  public class AnimatorDemo extends Applet implements Runnable

  {

  Thread timer; // 用于顯示時(shí)鐘的線程

  int lastxs, lastys, lastxm,

  lastym, lastxh, lastyh;

  SimpleDateFormat formatter; //格式化時(shí)間顯示

  String lastdate; // 保存當(dāng)前時(shí)間的字符串

  Font clockFaceFont; //設(shè)置顯示時(shí)鐘里面的數(shù)字的字體

  Date currentDate; // 顯示當(dāng)前時(shí)間

  Color handColor; // 用于顯示時(shí)針、分針和表盤的顏色

  Color numberColor; // 用于顯示秒針和數(shù)字的顏色

  public void init

  {

  int x,y;

  lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;

  formatter = new SimpleDateFormat ("yyyy EEE MMM dd hh:mm:ss ");

  currentDate = new Date;

  lastdate = formatter.format(currentDate);

  clockFaceFont = new Font("Serif", Font.PLAIN, 14);

  handColor = Color.blue;

  numberColor = Color.darkGray;

  try {

  setBackground(new Color(Integer.parseInt(getParameter("bgcolor"),16)));}

  catch (Exception E) { }

  try {

  handColor = new Color(Integer.parseInt(getParameter("fgcolor1"),16));}

  catch (Exception E) { }

  try {

  numberColor = new Color(Integer.parseInt(getParameter("fgcolor2"),16));} catch (Exception E) { } resize(300,300); // 設(shè)置時(shí)鐘窗口大小}

  // 計(jì)算四分之一的圓弧

  public void plotpoints(int x0, int y0, int x, int y, Graphics g)

  {

  g.drawLine(x0+x,y0+y,x0+x,y0+y);

  g.drawLine(x0+y,y0+x,x0+y,y0+x);

  g.drawLine(x0+y,y0-x,x0+y,y0-x);

  g.drawLine(x0+x,y0-y,x0+x,y0-y);

  g.drawLine(x0-x,y0-y,x0-x,y0-y);

  g.drawLine(x0-y,y0-x,x0-y,y0-x);

  g.drawLine(x0-y,y0+x,x0-y,y0+x);

  g.drawLine(x0-x,y0+y,x0-x,y0+y);}

  // 用Bresenham算法來(lái)畫圓,其中(x0,y0)是圓的中心,r為圓半徑

  public void circle(int x0, int y0, int r, Graphics g)

  {

  int x,y;

  float d;

  x=0;

  y=r;

  d=5/4-r;

  plotpoints(x0,y0,x,y,g);

  while(y>x){

  if (d<0) {

  d=d+2_x+3;

  x++;}

  else {

  d=d+2_(x-y)+5;

  x++;

  y--;}

  plotpoints(x0,y0,x,y,g);}}

  public void paint(Graphics g)

  {int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter; String today;

  currentDate = new Date;

  SimpleDateFormat formatter = new SimpleDateFormat("s",Locale.getDefault); try {

  s = Integer.parseInt(formatter.format(currentDate));

  } catch (NumberFormatException n) {

  s = 0;}

  formatter.applyPattern("m");

  try {

  m = Integer.parseInt(formatter.format(currentDate));

  } catch (NumberFormatException n) {

  m = 10;}

  formatter.applyPattern("h");

  try {

  h = Integer.parseInt(formatter.format(currentDate));

  } catch (NumberFormatException n) {

  h = 10;}

  formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");

  today = formatter.format(currentDate);

  //設(shè)置時(shí)鐘的表盤的中心點(diǎn)為(80,55)

  xcenter=80;

  ycenter=55;

  // a= s_ pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)

  // x = r(cos a) + xcenter, y = r(sin a) + ycenter

  xs = (int)(Math.cos(s _ 3.14f/30 - 3.14f/2) _ 45 + xcenter);

  ys = (int)(Math.sin(s _ 3.14f/30 - 3.14f/2) _ 45 + ycenter);

  xm = (int)(Math.cos(m _ 3.14f/30 - 3.14f/2) _ 40 + xcenter);

  ym = (int)(Math.sin(m _ 3.14f/30 - 3.14f/2) _ 40 + ycenter);

  xh = (int)(Math.cos((h_30 + m/2) _ 3.14f/180 - 3.14f/2) _ 30 + xcenter); yh = (int)(Math.sin((h_30 + m/2) _ 3.14f/180 - 3.14f/2) _ 30 + ycenter); //畫時(shí)鐘最外面的圓盤其中心在(xcenter,ycenter)半徑為50

  g.setFont(clockFaceFont);

  g.setColor(handColor);

  circle(xcenter,ycenter,50,g);

  //畫時(shí)鐘表盤里的數(shù)字

  g.setColor(numberColor);

  g.drawString("9",xcenter-45,ycenter+3);

  g.drawString("3",xcenter+40,ycenter+3);

  g.drawString("12",xcenter-5,ycenter-37);

  g.drawString("6",xcenter-3,ycenter+45);

  // 如果必要的話抹去然后重畫

  g.setColor(getBackground);

  if (xs != lastxs || ys != lastys) {

  g.drawLine(xcenter, ycenter, lastxs, lastys);

  g.drawString(lastdate, 5, 125);}

  if (xm != lastxm || ym != lastym) {

  g.drawLine(xcenter, ycenter-1, lastxm, lastym);

  g.drawLine(xcenter-1, ycenter, lastxm, lastym); }

  if (xh != lastxh || yh != lastyh) {

  g.drawLine(xcenter, ycenter-1, lastxh, lastyh);

  g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }

  g.setColor(numberColor);

  g.drawString("", 5, 125);

  g.drawString(today, 5, 125);

  g.drawLine(xcenter, ycenter, xs, ys);

  g.setColor(handColor);

  g.drawLine(xcenter, ycenter-1, xm, ym);

  g.drawLine(xcenter-1, ycenter, xm, ym);

  g.drawLine(xcenter, ycenter-1, xh, yh);

  g.drawLine(xcenter-1, ycenter, xh, yh);

  lastxs=xs; lastys=ys;

  lastxm=xm; lastym=ym;

  lastxh=xh; lastyh=yh;

  lastdate = today;

  currentDate=null;

  }//applet的啟動(dòng)方法

  public void start

  {timer = new Thread(this);

  timer.start;

  }// applet的停止方法

  public void stop

  {timer = null;

  }//線程的run方法

  public void run

  {Thread me = Thread.currentThread;

  while (timer == me) {

  try {Thread.currentThread.sleep(1000);}

  catch (InterruptedException e)

  repaint;}

  }//注意:這里重寫了update方法,只是調(diào)用了paint方法來(lái)消除閃爍現(xiàn)象 public void update(Graphics g)

  {paint(g);}

  }

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi)(精選4篇) 相關(guān)內(nèi)容:
  • 工商管理專業(yè)實(shí)習(xí)自我總結(jié)(通用15篇)

    我于2x年3月1日到4月26日在先xx公司進(jìn)行為期57天的企業(yè)實(shí)習(xí),在為期57天的企業(yè)實(shí)習(xí)中將課堂上所學(xué)到的知識(shí)運(yùn)用到實(shí)踐中讓我深有感觸,感覺自己所學(xué)的知識(shí)匱乏和實(shí)踐操作缺乏經(jīng)驗(yàn),開始感覺工作無(wú)從下手不知所措,現(xiàn)將我的工作進(jìn)行如下總結(jié)...

  • 中專生實(shí)習(xí)個(gè)人總結(jié)(精選16篇)

    我叫,是家樂(lè)店收銀員一名入職不久的新員工,雖說(shuō)是新員工,但在公司工作也將近三個(gè)月時(shí)間了。轉(zhuǎn)眼間快到年底了,來(lái)到本公司的這幾個(gè)月里,我不僅學(xué)會(huì)了很多專業(yè)知識(shí),而且也學(xué)會(huì)了人與人之間的交往,特別是怎樣與顧客溝通。...

  • 工程實(shí)習(xí)總結(jié)(通用14篇)

    認(rèn)識(shí)實(shí)習(xí)是在學(xué)完有關(guān)基礎(chǔ)知識(shí)后,進(jìn)行專業(yè)課學(xué)習(xí)之前必須要完成的一項(xiàng)重要的教學(xué)實(shí)踐環(huán)節(jié)。一、實(shí)習(xí)內(nèi)容1、參觀__公司__,是中國(guó)一個(gè)比較知名的設(shè)計(jì)公司,其分公司遍布___等中國(guó)十幾個(gè)城市,并延伸到__以及一些__國(guó)家,可見其影響之深遠(yuǎn)...

  • 網(wǎng)絡(luò)客服專員實(shí)習(xí)總結(jié)(精選3篇)

    穿梭于各種人才市場(chǎng),各種人才交流會(huì),同學(xué)們陸陸續(xù)續(xù)的找到了工作,很快我也加入到了上班族的行列。這是一家私營(yíng)企業(yè),總公司在成都,主要業(yè)務(wù)在菲律賓以及澳門和廈門一帶,南寧的公司只是一個(gè)小小的分部。...

  • 大學(xué)生畢業(yè)實(shí)習(xí)個(gè)人工作總結(jié)(精選15篇)

    1. 扎實(shí)的專業(yè)知識(shí)是你提高工作水平的堅(jiān)實(shí)基礎(chǔ)。在學(xué)校學(xué)習(xí)專業(yè)知識(shí)時(shí),可能感覺枯燥無(wú)味,但當(dāng)你工作以后,你才會(huì)發(fā)現(xiàn)專業(yè)知識(shí)是多么的重要。如我學(xué)的印刷概論,印刷色彩學(xué)等,這些印刷知識(shí)是必須知道的,因?yàn)樵谌粘9ぷ髦幸幪幱玫健?..

  • 保險(xiǎn)公司實(shí)習(xí)工作總結(jié)報(bào)告(精選3篇)

    今年暑假,我有幸到中國(guó)人壽保險(xiǎn)股份有限公司榮昌支公司進(jìn)行了為期40天的實(shí)習(xí),在這一個(gè)多月的實(shí)習(xí)中我學(xué)到了很多在課堂上和書本上根本就學(xué)不到的知識(shí),受益匪淺,F(xiàn)在我就對(duì)這40天的實(shí)習(xí)做一個(gè)工作小結(jié)。...

  • 實(shí)習(xí)個(gè)人總結(jié)范文十五篇

    這段時(shí)間以來(lái)的實(shí)習(xí)工作已經(jīng)結(jié)束了,我覺得自己能夠細(xì)心的去處理好自己分內(nèi)的事情,這對(duì)實(shí)習(xí)也是很有幫助的,雖然實(shí)習(xí)只有三個(gè)月的時(shí)間,但是我一直都能夠從中掌握更多的知識(shí),這對(duì)我的影響還是比較大的,雖然實(shí)習(xí)已經(jīng)結(jié)束了,但是我一定...

  • 實(shí)習(xí)生總結(jié)范文十篇

    陰似箭,歲月如梭。一晃幾個(gè)月的實(shí)習(xí)生活已經(jīng)過(guò)去了,在最近的幾個(gè)月的實(shí)習(xí)過(guò)程中,我有著許多的收獲和歡樂(lè),但也有苦澀和教訓(xùn),這些成功的經(jīng)驗(yàn)將激勵(lì)我在以后的人生之路上取得更大成績(jī),失敗的經(jīng)歷將使努力去改變自己不完美的地方,讓自...

  • 會(huì)計(jì)實(shí)習(xí)總結(jié)1500字十篇

    來(lái)到金橋稅務(wù)師事務(wù)所已兩月了,時(shí)光荏苒如白駒過(guò)隙,在這短短的兩個(gè)月的時(shí)間里,我們成長(zhǎng)了、學(xué)習(xí)了也被教育了。在兩個(gè)月前開始的本次會(huì)計(jì)實(shí)習(xí),采取理論與實(shí)際相結(jié)合的實(shí)習(xí)的方式,再通過(guò)實(shí)踐操作來(lái)鞏固學(xué)習(xí)到的理論知識(shí)。...

  • 實(shí)習(xí)總結(jié)