這個功課老師讓大家練習用Swing,當你點擊增加時會增加數字,然後當你點到十次之後,就要在Label上出現自己的姓名或學號,老師還要求使用Border替Label和Panel加上外框顏色,另外筆者還幫大家加了重置數字的功能。
如果同學們要修改的話,可以試著多加幾顆按鈕和功能,或是點擊十次後跳出訊息框,或者外框的顏色也可以弄得更有動態感,既然是設計視窗程式,也請大家多多思考有哪些設計方式吧!
執行結果:
底下分享我自己寫的部分,另外也歡迎平時有光顧我網誌的讀者,可以在底下留言自己的寫法。^-^
寫法僅供參考,畢竟Java才學不到一年吧 >”<
(大家記得註解和程式碼要自己重新打過唷,工讀生會檢查;變數名稱和註解內容記得也要修改掉唷)
程式碼:
import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; public class a11967046 extends JFrame implements ActionListener { /* 11967046 * 請依據5/18上課時所交付之作業, * 製作一個視窗,包含一個JLabel與一個JButton, * 按下Button時Label會顯示按下的次數, * 在按下第十次按鈕時請在Label上顯示自己的姓名。 * 並注意以下要求: * 1. Label設定藍色外框 * 2. JPanel請設定黃色外框。 */ JButton count_btn = new JButton(); //新增計數用的按鈕 JLabel label = new JLabel(); //新增一個提示文字標籤 JPanel panel = new JPanel(); //新增一個Panel容器 int i = 0; //計數用的變數 public a11967046(){ super("This is a frame"); //使用BorderFactory類別設定邊界顏色 panel.setBorder(BorderFactory.createMatteBorder( 5,5,5,5,Color.yellow)); //取得視窗容器 Container c = this.getContentPane(); //設定按鈕文字 count_btn.setText("增加"); //設定文字標籤文字 label.setText("點擊次數是:0"); //使用BorderFactory類別設定邊界顏色 label.setBorder(BorderFactory.createLineBorder(Color.blue)); //建立按鈕的監聽事件,呼叫自己這個的類別,去實作ActionListener //和一個actionPerformed方法 count_btn.addActionListener(this); //將物件加入Panel中 panel.add(label); panel.add(count_btn); //將Panel加入Container中 c.add(panel); } public static void main(String[] args) { a11967046 frame = new a11967046(); //設定frame的關閉事件為DISPOSE_ON_CLOSE: //將本視窗的系統資源釋放掉,等到所有視窗都被Dispose時, //則關閉應用程式 frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); //設定frame的Size frame.setSize(300, 150); //設定frame的背景 frame.setBackground(Color.blue); //設定frame為可見 frame.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { //當按鈕按下的是計數用的按鈕 if(e.getSource() == count_btn){ //增加次數 i++; //顯示文字和目前次數 label.setText("點擊次數是:"+i); count_btn.setText("增加"); if(i>= 10){ //改變文字標籤內容,上面寫著我的名字 i=0; label.setText("學號:XXX,姓名:XXX"); count_btn.setText("重置數字"); } } } }
沒有留言:
張貼留言
歡迎提供良性建議^_^