import?java.awt.BorderLayout;
成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)海城,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
import?java.awt.Color;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
/**
*?@author?Gerrad
*
*?色盲測試
*/
public?class?ColorBlindnessTest?extends?JFrame?implements?ActionListener?{
private?static?final?long?serialVersionUID?=?1L;
private?JPanel?infoPanel?=?new?JPanel();
private?JPanel?bgPanel?=?new?JPanel();
private?JPanel?resultPanel?=?new?JPanel();
private?JButton?btnRed?=?new?JButton("紅色");
private?JButton?btnGreen?=?new?JButton("綠色");
private?JButton?btnTryAgain?=?new?JButton("再試一次");
private?JLabel?lblInfo?=?new?JLabel("請根據(jù)下面的顏色來點(diǎn)擊相應(yīng)的按鈕!");
private?JLabel?lblResult?=?new?JLabel();
private?int?score?=?0;
private?int?flag?=?0;
public?ColorBlindnessTest()?{
this.setTitle("色盲測試:兩次都選對才不是色盲");
this.setLayout(new?BorderLayout());
infoPanel.add(lblInfo);
btnRed.addActionListener(this);
btnGreen.addActionListener(this);
infoPanel.add(btnRed);
infoPanel.add(btnGreen);
infoPanel.add(lblResult);
this.add(infoPanel,?BorderLayout.NORTH);
bgPanel.setBackground(Color.RED);
this.add(bgPanel,?BorderLayout.CENTER);
resultPanel.add(lblResult);
btnTryAgain.addActionListener(this);
// resultPanel.add(btnTryAgain);
this.add(resultPanel,?BorderLayout.SOUTH);
this.setSize(400,?400);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public?static?void?main(String[]?args)?{
new?ColorBlindnessTest();
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
if?(e.getSource().equals(btnRed))?{
flag++;
if?(bgPanel.getBackground().equals(Color.red))?{
score?+=?50;
bgPanel.setBackground(Color.green);
}?else?{
bgPanel.setBackground(Color.green);
}
}?else?if?(e.getSource().equals(btnGreen))?{
flag++;
if?(bgPanel.getBackground().equals(Color.green))?{
score?+=?50;
bgPanel.setBackground(Color.green);
}?else?{
bgPanel.setBackground(Color.green);
}
}
if?(flag?==?2){
if?(score?==?100)?{
lblResult.setText("恭喜您!不是色盲!");
resultPanel.add(btnTryAgain);
}?else?{
lblResult.setText("很遺憾~您沒有通過測試!您是色盲!");
resultPanel.add(btnTryAgain);
}
}
if?(e.getSource().equals(btnTryAgain))?{
this.setVisible(false);
new?ColorBlindnessTest();
}
}
}
運(yùn)行結(jié)果:
可以用main函數(shù)和JUnit來寫測試代碼。main是最早使用的,但是現(xiàn)在更流行的測試工具是JUnit。
JUnit是一個(gè)Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個(gè)。 JUnit有它自己的JUnit擴(kuò)展生態(tài)圈。多數(shù)Java的開發(fā)環(huán)境都已經(jīng)集成了JUnit作為單元測試的工具。
下面是一些具體的編寫測試代碼的技巧或較好的實(shí)踐方法:
1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測試運(yùn)行的順序,因?yàn)镴Unit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。
3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡單的回滾就可以了。
4. 當(dāng)繼承一個(gè)測試類時(shí),記得調(diào)用父類的setUp()和tearDown()方法。
5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)
6. 測試類和測試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測試類名。
7. 確保測試與時(shí)間無關(guān),不要依賴使用過期的數(shù)據(jù)進(jìn)行測試。導(dǎo)致在隨后的維護(hù)過程中很難重現(xiàn)測試。
8. 如果你編寫的軟件面向國際市場,編寫測試時(shí)要考慮國際化的因素。不要僅用母語的Locale進(jìn)行測試。
9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
10.測試要盡可能地小,執(zhí)行速度快。
11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。
12.利用Junit 的自動異常處理書寫簡潔的測試代碼
事實(shí)上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會自動捕獲異常。那些沒有被捕獲的異常就被當(dāng)成錯誤處理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用來測試兩個(gè)引用是否指向同一個(gè)對象
assertEquals()用來測試兩個(gè)對象是否相等
14. 確保測試代碼與時(shí)間無關(guān)
15. 使用文檔生成器做測試文檔。
最簡單的java代碼肯定就是這個(gè)了,如下:
public class MyFirstApp
{
public static void main(String[] args)
{
System.out.print("Hello world");
}
}
“hello world”就是應(yīng)該是所有學(xué)java的新手看的第一個(gè)代碼了。如果是零基礎(chǔ)的新手朋友們可以來我們的java實(shí)驗(yàn)班試聽,有免費(fèi)的試聽課程幫助學(xué)習(xí)java必備基礎(chǔ)知識,有助教老師為零基礎(chǔ)的人提供個(gè)人學(xué)習(xí)方案,學(xué)習(xí)完成后有考評團(tuán)進(jìn)行專業(yè)測試,幫助測評學(xué)員是否適合繼續(xù)學(xué)習(xí)java,15天內(nèi)免費(fèi)幫助來報(bào)名體驗(yàn)實(shí)驗(yàn)班的新手快速入門java,更好的學(xué)習(xí)java!