評論
# re: java在線編譯器-youjavait.com [未登錄] 2014-09-30 07:09 jesse
# re: java在線編譯器-youjavait.com 2014-11-26 16:40 言
package ch10;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Random;
public class MyGuessNumberGame {
private JFrame frame; //主界面
private JTextField textField; //輸入數字的單行文本框
private JLabel jlbResult; //顯示結果和提示信息的標簽
private JButton jbtGuessButton; // 猜數字按鈕
private JButton button;
private int number; //生成的待猜隨機數
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyGuessNumberGame window = new MyGuessNumberGame();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MyGuessNumberGame() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
//產生一個隨機數字
this.getRandomInteger();
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.getContentPane().setLayout(null);//把布局管理器設為null,可以自由拖放控件
JLabel label = new JLabel("請輸入數字");
label.setBounds(49, 61, 96, 15);
frame.getContentPane().add(label);
JLabel label_1 = new JLabel("猜數字");
label_1.setFont(new Font("微軟雅黑", Font.PLAIN, 24));
label_1.setBounds(131, 10, 134, 35);
frame.getContentPane().add(label_1);
textField = new JTextField();
textField.setBounds(155, 58, 66, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
JButton jbtGuessButton = new JButton("我猜一猜");
//自定義一個事件監聽類,并注冊到猜數字的按鈕上去
GuessListener guessListener=new GuessListener();
jbtGuessButton.addActionListener(guessListener);
jbtGuessButton.setBounds(248, 57, 66, 23);
frame.getContentPane().add(jbtGuessButton);
JButton button = new JButton("再來一次");
GuessListener1 guessListener1=new GuessListener1();
button.addActionListener(guessListener1);
button.setBounds(248, 57, 66, 23);
frame.getContentPane().add(button);
jlbResult = new JLabel();
jlbResult.setForeground(Color.RED);
jlbResult.setFont(new Font("宋體", Font.PLAIN, 18));
jlbResult.setBounds(91, 104, 199, 35);
frame.getContentPane().add(jlbResult);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void getRandomInteger(){
Random rdm=new Random(System.currentTimeMillis());
this.number=rdm.nextInt(100);
}
protected void isBingo(){
String str=textField.getText();
if(str.length()==0){
jlbResult.setText("請輸入一個0~100之間的整數,包括0但是不包括100");
return;
}else {
try{
int tmp=Integer.parseInt(str);
if(tmp>0){
if(tmp==this.number){
jlbResult.setText("恭喜你猜對了");
jbtGuessButton.setVisible(false);
button.setVisible(true);
getRandomInteger();
}else if(tmp<this.number){
jlbResult.setText("小了點,你再試試");
}else{
jlbResult.setText("大了點,你再試試");
}
}
else{
jlbResult.setText("請輸入一個0~100之間的整數");
}
}
catch(NumberFormatException x)
{
jlbResult.setText("請輸入數字!!!");
}
}
}
//定義內部類,實現猜數字按鈕的事件監聽器
class GuessListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
isBingo();
}
}
class GuessListener1 implements ActionListener{
public void actionPerformed(ActionEvent e) {
jbtGuessButton.setVisible(true);
button.setVisible(false);
jlbResult.setText(" ");
textField = new JTextField("0");
textField.setBounds(155, 58, 66, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
}
}
}
回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||