這個功課老師讓大家練習用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("重置數字");
}
}
}
}
沒有留言:
張貼留言
歡迎提供良性建議^_^