好像和另外一個一樣,貼一下:
成都創(chuàng)新互聯(lián)的客戶來自各行各業(yè),為了共同目標(biāo),我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、做網(wǎng)站、電商網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GoodLucky extends JFrame implements ActionListener{
JTextField tf = new JTextField(); //實(shí)例化一個文本域
//設(shè)置兩個按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
//構(gòu)造函數(shù)
public GoodLucky(){
b1.setActionCommand("start");//在開始按鈕上設(shè)置一個動作監(jiān)聽 start
JPanel p = new JPanel(); //實(shí)例化一個可視化容器
//將兩個按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
//在兩個按鈕上增加監(jiān)聽的屬性,自動調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent e),如果要代碼有更好的可讀性,可用內(nèi)部類實(shí)現(xiàn)動作
//監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
//將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
this.getContentPane().add(tf,"North"); //將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(p,"South"); //將可視化容器pannel放在南邊,也就是下面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認(rèn)執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用 System exit 方法退出應(yīng)用程序。僅在應(yīng)用程序中使用
this.setSize(300,200); //設(shè)置面板大小,寬和高
this.setLocation(300,300); //設(shè)置面板剛開始的出現(xiàn)的位置
Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名稱創(chuàng)建一個新的定制光標(biāo)對象,參數(shù)表示手狀光標(biāo)類型
this.setCursor(cu); //為指定的光標(biāo)設(shè)置光標(biāo)圖像,即設(shè)置光標(biāo)圖像為上面所創(chuàng)建的手狀光標(biāo)類型
this.setVisible(true); //將面板可視化設(shè)置為true,即可視,如果為false,即程序運(yùn)行時面板會隱藏
tf.setText("welcome you! "); //設(shè)置面板的標(biāo)題為歡迎
this.go(); //調(diào)用go方法
}
public void go(){
while(true){ //這里是死循環(huán),也就是說用戶不點(diǎn)擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機(jī)數(shù),直到用戶點(diǎn)擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
if(isGo == true){ //上面所定義的isGo的初始值為false,所以程序第一次到此會跳過
String s = ""; //設(shè)置空字符串
for(int j = 1; j = 7;j++){ //產(chǎn)生7個隨機(jī)數(shù)
int i = (int)(Math.random() * 36) + 1;//每個隨機(jī)數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機(jī)數(shù)產(chǎn)生的方式
if(i 10){
s = s + " 0" + i; //如果產(chǎn)生的隨機(jī)數(shù)小于10的話做處理:這里就牽扯到一個重要的概念,簡單敘述一下:
/*
當(dāng)一個字符串與一個整型數(shù)項(xiàng)相加的意思是連接,上面的s = s + " 0" + i的意思是字符串s鏈接0再連接整型i值,而不會導(dǎo)致0和整型的i相加,
產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過的),所以當(dāng)i小于零時,在個位數(shù)前面加上0,比如產(chǎn)生的隨機(jī)數(shù)i為7的話,顯示效果為 07.
*/
}else{
s = s + " " + i; //如果產(chǎn)生的隨機(jī)數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個空格
}
//以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個隨機(jī)數(shù)
}
tf.setText(s); //將產(chǎn)生的隨機(jī)數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的設(shè)置文本的方法setText(String)實(shí)現(xiàn)。
}
//以下為線程延遲
try{
Thread.sleep(10); //線程類同步方法sleep,睡眠方法,括號里的單位為ms。
}catch(java.lang.InterruptedException e){
e.printStackTrace(); //異常捕獲,不用多說。
}
}
}
//以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時間處理方法,自動調(diào)用
public void actionPerformed(ActionEvent e){ //傳入一個動作事件的參數(shù)e
String s = e.getActionCommand(); //設(shè)置字符串s來存儲獲得動作監(jiān)聽,上面的start
/*
以下這個條件語句塊的作用為:用戶點(diǎn)擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因?yàn)檠h(huán)體中要求isGo參數(shù)為true,而初始為false)。
執(zhí)行循環(huán)快產(chǎn)生隨機(jī)數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時,也就是沒有傳入?yún)?shù)“start”的時候,
執(zhí)行else語句塊中的語句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語句塊,從而停止產(chǎn)生隨機(jī)數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機(jī)數(shù)。
*/
if(s.equals("start")){ //如果捕獲到start,也就是用戶觸發(fā)了動作監(jiān)聽器,那么下面處理
isGo = true; //設(shè)置isGo為true
b1.setEnabled(false); //將開始按鈕設(shè)置為不可用
b2.setEnabled(true); //將停止按鈕設(shè)置為可用
}else{
isGo = false; //將isGo設(shè)置為false,isGo為循環(huán)標(biāo)志位
b2.setEnabled(false); //設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); //設(shè)置開始按鈕為可用
}
}
public static void main(String[] args){
new GoodLucky(); //產(chǎn)生類的實(shí)例,執(zhí)行方法
}
}
import?java.awt.*;???//awt的圖形包
import?javax.swing.*;//swing的圖形包
import?java.io.*; //IO流處理包
import?java.awt.event.*;?//事件處理包
public?class?CDInfor?extends?JFrame?implements?ActionListener//繼承swing?的Frame?實(shí)現(xiàn)?事件接口?
{
BufferedReader?in;? //輸入輸出管道流
FileWriter?out;
JPanel?jPanel1?=?new?JPanel(); //定義?6個Jpanel(容器)用來裝組件?(就是你按鈕什么的)
JPanel?jPanel2?=?new?JPanel(new?GridLayout(4,1)); //其中這個是??用網(wǎng)格的布局管理器
JPanel?jPanel3?=?new?JPanel();
JPanel?jPanel5?=?new?JPanel();
JPanel?jPanel4?=?new?JPanel();
JPanel?jPanel6?=?new?JPanel();
JScrollPane?jScrollPane1?=?new?JScrollPane(); //定義滾動條
JTextArea?jTextArea1?=?new?JTextArea("",10,25); //定義輸入框
GridLayout?gridLayout1?=?new?GridLayout(); //整體用的事?網(wǎng)格布局管理器
JTextField?jTextField1?=?new?JTextField(10);? //文本輸入框
JTextField?jTextField2?=?new?JTextField(10);?
JTextField?jTextField3?=?new?JTextField(10);?
JLabel?jLabel1?=?new?JLabel("唱片編號:"); //定義顯示的字?(只用來顯示字)
JLabel?jLabel2?=?new?JLabel("唱片名稱:");
JLabel?jLabel3?=?new?JLabel("歌手姓名:");
JButton?jButton1?=?new?JButton("增加"); //定義按鈕
JButton?jButton2?=?new?JButton("取消");
String?str;
public?CDInfor()?{ //構(gòu)造方法?程序啟動的時候?或者調(diào)用這個類的時候執(zhí)行(這里是程序啟動)
try?{
setDefaultCloseOperation(EXIT_ON_CLOSE);????//天劍程序關(guān)閉的方法?要不然?你點(diǎn)關(guān)閉?界面沒了?但是資源沒釋放
jbInit(); //調(diào)用jbInit()方法?用于實(shí)現(xiàn)事件
}
catch?(Exception?exception)?{ //錯誤捕捉
exception.printStackTrace();
}
}
public?void?jbInit()
{
Container?cp?=?getContentPane(); //定義一個pane的容器
cp.setLayout(new?BorderLayout()); //布局為邊框布局
jButton1.addActionListener(this); //將按鈕1?綁定事件
jButton2.addActionListener(this); //將按鈕2?綁定事件
jTextArea1.setEditable(false); //將這個輸入框設(shè)定為不可編輯
jScrollPane1.getViewport().add(jTextArea1); //滾動條和jTextArea1綁定
jPanel3.add(jLabel1);?jPanel3.add(jTextField1);???//將各個組件加入Jpanel里
jPanel4.add(jLabel2);?jPanel4.add(jTextField2);
jPanel5.add(jLabel3);?jPanel5.add(jTextField3);
jPanel6.add(jButton1);?jPanel6.add(jButton2);
jPanel1.add(jScrollPane1);
jPanel2.add(jPanel3);?jPanel2.add(jPanel4);?jPanel2.add(jPanel5);?jPanel2.add(jPanel6);
jPanel2.setPreferredSize(new?Dimension(10,?150));
cp.add("Center",jPanel1);
cp.add("South",jPanel2);???
}
public?void?actionPerformed(ActionEvent?e) //實(shí)現(xiàn)事件監(jiān)聽
{
if(e.getSource()==jButton1) //如果當(dāng)前是?按鈕一的話
{
try?{}?
catch?(Exception?ex)?{}
}
jTextField1.setText("");? //內(nèi)容全部清空
jTextField2.setText("");
jTextField3.setText("");
}
public?static?void?main(String[]?args)?throws?Exception
{
CDInfor?kk?=?new?CDInfor(); //應(yīng)為main是Static?所以?要new?本身類
kk.setSize(350,350); //設(shè)定大小
kk.setTitle("Please?caculat:"); //設(shè)定標(biāo)題欄文字
kk.setVisible(true); //是否顯示?這個窗口
}
}
還不夠詳細(xì)么親~?采納吧~~
Java中三種類型的注釋:
單行注釋:// 注釋內(nèi)容
多行注釋:/*... 注釋內(nèi)容....*/
文本注釋:/**.. 注釋內(nèi)容....*/
代碼注釋是架起程序設(shè)計者與程序閱讀者之間的通信橋梁,最大限度的提高團(tuán)隊(duì)開發(fā)合作效率。也是程序代碼可維護(hù)性的重要環(huán)節(jié)之一。所以不是為寫注釋而寫注釋。
備注:簡單的代碼做簡單注釋,注釋內(nèi)容不大于10個字即可,另外,持久化對象或VO對象的getter、setter方法不需加注釋。
擴(kuò)展資料:
類(模塊)注釋采用 /** …… */,在每個類(模塊)的頭部要有必要的注釋信息,包括:工程名;類(模塊)編號;命名空間;類可以運(yùn)行的JDK版本;版本號;作者;創(chuàng)建時間;類(模塊)功能描述(如功能、主要算法、內(nèi)部各部分之間的關(guān)系、該類與其類的關(guān)系等,必要時還要有一些如特別的軟硬件要求等說明);主要函數(shù)或過程清單及本類(模塊)歷史修改記錄等。
參考資料來源:百度百科-java注釋