欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaGUI實現(xiàn)隨機單詞答題游戲

 更新時間:2020年12月08日 08:44:00   作者:啊道~  
這篇文章主要為大家詳細介紹了JavaGUI實現(xiàn)隨機單詞答題游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JavaGUI實現(xiàn)隨機單詞答題游戲的具體代碼,供大家參考,具體內(nèi)容如下

案例描述:java-gui實現(xiàn)單詞游戲,隨機顯示單詞,鍵盤在文本框中輸入想對應(yīng)的單詞,回答正確加5分,錯誤扣三分**

案例圖片

回答正確

回答錯誤

重置答題

案例分析

1.定義三個面板存放各個組件JPanel
2.定義拆分窗格布局
3.創(chuàng)造三個文本域用來顯示和輸入
4.定義滾動窗格設(shè)置自動換行
5.定義"確定"重置”“退出”按鈕
6.給三個按鈕添加事件處理
7.定義單詞顯示區(qū)域
8.定義幾個數(shù)據(jù)存放分數(shù)答題數(shù)
9.設(shè)置字體大小和顏色
10.設(shè)置布局管理器

廢話不說直接上代碼(注釋已經(jīng)寫好了)

import java.awt.*; //導(dǎo)包
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
public class Swing_exercise2 extends JFrame { //繼承JFrame頂層框架

 //定義面板
 JPanel jp1;
 JPanel jp2;
 JPanel jp3;

 //定義拆分窗格
 JSplitPane jsp;
 JSplitPane jsp1;

 //定義文本域
 JTextArea jta1;
 TextField jta2;
 JTextArea jta3;

 //定義滾動窗格
 JScrollPane jspane1;
 JScrollPane jspane2;
 JScrollPane jspane3;


 //定義按鈕
 JButton jb2;
 JButton jb3;
 JButton jb1;

 //定義顯示區(qū)域
 JLabel jla1;

 //定義隨機函數(shù)
 Random ran;
 private int sw; //屏幕寬度和高度
 private int sh; //屏幕寬度和高度
 private String ch;//隨機單詞
 private int Fen;//記錄分數(shù)
 private int z;//記錄正確題數(shù)
 private int x;//記錄錯誤題數(shù)
 private int sun;//記錄總題數(shù)

 public static void main(String[] args) {
 Swing_exercise2 a = new Swing_exercise2(); //顯示界面
 }

 public Swing_exercise2() //構(gòu)造函數(shù)
 {
 //字體初始化 Times new roman:羅馬字樣 加粗
 Font font = new Font("Times new roman", Font.BOLD, 50);
 Font font2 = new Font("Times new roman", Font.BOLD, 30);
 Font font1 = new Font("宋體", Font.BOLD, 20);
 Font font4 = new Font("宋體", Font.BOLD, 70);


 //創(chuàng)建隨機函數(shù)
 ran = new Random();

 //創(chuàng)建面板
 jp1 = new JPanel();
 jp2 = new JPanel();
 jp3 = new JPanel();

 //創(chuàng)建多行文本框
 jta1 = new JTextArea();
 jta3 = new JTextArea();

 //創(chuàng)建單行文本框
 jta2 = new TextField(10);

 //設(shè)置多行文本框自動換行
 jta1.setLineWrap(true);
 jta3.setLineWrap(true);


 //創(chuàng)建滾動窗格
 jspane1 = new JScrollPane(jta1);
 jspane2 = new JScrollPane(jta2);
 jspane3 = new JScrollPane(jta3);

 //設(shè)置字體樣式
 jta3.setFont(font1);
 jta2.setFont(font2);
 jta1.setFont(font);


 //創(chuàng)建拆分窗格
 jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jspane1, jspane2);
 jsp1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jspane3, jsp);

 //分頻器布局
 jsp.setDividerLocation(700); //設(shè)置拆分窗格分頻器初始位置
 jsp.setDividerSize(10);  //設(shè)置分頻器大小
 jsp1.setDividerLocation(0.5); //設(shè)置拆分窗格分頻器初始位置
 jsp1.setDividerSize(10);  //設(shè)置分頻器大小

 //設(shè)置調(diào)整單詞顯示區(qū)
 jla1 = new JLabel();
 jla1.setFont(font);

 //初始化顯示頁面
 ch = RandomWords();
 jla1.setText(ch);
 jla1.setSize(sw, sh);
 jla1.setSize(500, 500);
 jla1.setLocation(ran.nextInt(300), ran.nextInt(200));

 //設(shè)置顏色
 jla1.setForeground(Color.green);
 jla1.setBackground(Color.decode("#000cc"));


 //創(chuàng)建按鈕
 jb2 = new JButton("確定");
 jb3 = new JButton("退出");
 jb1 = new JButton("重置");


 //設(shè)置布局管理
 jp1.setLayout(new BorderLayout()); //設(shè)置面板布局
 jp2.setLayout(new FlowLayout(FlowLayout.CENTER));
 jp3.setLayout(new BorderLayout());


 //添加組件
 jp1.add(jsp);
 jp2.add(jb2);
 jp2.add(jb1);
 jp2.add(jb3);
 jp3.add(jsp1);
 jta1.add(jla1);

 //初始化得分數(shù)據(jù)
 Fen=0;
 z=0;
 x=0;
 sun=0;


 //布置整體面板布局
 this.add(jp1, BorderLayout.CENTER);
 this.add(jp2, BorderLayout.SOUTH);
 this.add(jp3, BorderLayout.WEST);


 //設(shè)置窗體屬性
 this.setTitle("單詞游戲");     //設(shè)置界面標(biāo)題
 this.setExtendedState(MAXIMIZED_BOTH);   //窗口最大化
 this.setLocation(1000, 200);    //設(shè)置界面初始位置
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置虛擬機和界面一同關(guān)閉
 this.setVisible(true);     //設(shè)置界面可視化

 //空格加鼠標(biāo)確定事件監(jiān)聽
 jb2.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  if (jta2.getText().equals(ch)) {
   jta1.setText("");
   jta2.setText("");
   z=z+1;
   Fen=Fen+5;
   sun=x+z;
   jta3.setForeground(Color.blue);
   jta3.setText("回答正確 " +
    " 得分+5  "+"  作答情況 "+""+"正確:"+z+" "+"錯誤:"
    +x+" 總答題:"+sun+"  總得分為 "+Fen+" " +
    " 不要驕傲");
   ch = RandomWords();
   jla1.setText(ch);
   jla1.setLocation(ran.nextInt(700), ran.nextInt(300));
  }else {
   jta3.setForeground(Color.red);
   jta1.setText("");
   jta2.setText("");
   Fen=Fen-2;
   if(Fen<0){
   Fen=0;
   }
   x+=1;
   sun=x+z;
   jta3.setText("回答錯誤 " +
    " 得分-2  "+"  作答情況 "+""+"正確:"+z+" "+"錯誤:"
    +x+" 總答題:"+sun+"  總得分為 "+Fen+" " +
    " 再接再厲");
  }
  }
 });

 //退出按鈕事件監(jiān)聽
 jb3.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  System.exit(0);
  }
 });

 //重置按鈕事件監(jiān)聽
 jb1.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  jta3.setForeground(Color.GRAY);
  jta1.setFont(font4);
  jta1.setText("不驕不躁,繼續(xù)努力");
  jta1.setForeground(Color.CYAN);
  jta2.setText("");
  z=0;
  sun=0;
  x=0;
  Fen=0;
  jta3.setText("重新答題 " +
   "  "+"作答情況"+""+"正確:0"+" "+"錯誤:0"
   +" 總答題:0"+"  總得分為 0 "+" " +
   "  不忘初心 繼續(xù)前行");
  }
 });

 //備選空格事件處理



 
 /*jb2.addKeyListener(new KeyAdapter() {
  @Override
  public void keyReleased(KeyEvent e) {
  if(e.getKeyCode()==KeyEvent.getExtendedKeyCodeForChar(KeyEvent.VK_SPACE)){
   if (jta2.getText().equals(ch)) {
   z=z+1;
   Fen=Fen+5;
   sun=x+z;
   jta3.setText("回答正確 " +
    " 得分+5  "+" 作答情況"+""+"正確:"+z+" "+"錯誤:"
    +x+" 總答題:"+sun+"  總得分為 "+Fen+" " +
    " 不要驕傲");
   ch = RandomWords();
   jla1.setText(ch);
   jla1.setLocation(ran.nextInt(300), ran.nextInt(500));
   }else {
   Fen=Fen-2;
   x+=1;
   sun=x+z;
   jta3.setText("回答錯誤 " +
    " 得分-2  "+" 作答情況"+""+"正確:"+z+" "+"錯誤:"
    +x+" 總答題:"+sun+"  總得分為 "+Fen+" " +
    " 再接再厲");
   }

  }
  }
 });*/
 }

 //隨機產(chǎn)生單詞
 private String RandomWords() {//產(chǎn)生隨機單詞
 String[] s = {"good", "cheer", "strive", "optimistic", "hello", "word", "tercher", "student",
  "book", "genius", "handsome", "beautiful", "health", "happy", "exercice", "computer",
  "english", "jspanese", "eat", "me"};
 int b = ran.nextInt(21);//定義隨機數(shù)區(qū)間[0,20]
 return s[b];
 }

 //獲取用戶屏幕大小
 private void SimpleFrame() {
 Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
 sw = dim.width;
 sh = dim.height;
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring?MVC請求處理流程和九大組件詳解

    Spring?MVC請求處理流程和九大組件詳解

    這篇文章主要介紹了Spring?MVC請求處理流程和九大組件,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • Spring Cloud  Eureka服務(wù)治理的實現(xiàn)

    Spring Cloud Eureka服務(wù)治理的實現(xiàn)

    服務(wù)治理是微服務(wù)框架中最為核心和基礎(chǔ)的模塊,它主要是用來實現(xiàn)各個微服務(wù)實例的自動化注冊與發(fā)現(xiàn)。這篇文章主要介紹了Spring Cloud Eureka服務(wù)治理的實現(xiàn),感興趣的小伙伴們可以參考一下
    2018-06-06
  • 基于Spring@Autowired注解與自動裝配詳談

    基于Spring@Autowired注解與自動裝配詳談

    下面小編就為大家?guī)硪黄赟pring@Autowired注解與自動裝配詳談。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 用Java驗證pdf文件的電子章簽名

    用Java驗證pdf文件的電子章簽名

    這篇文章主要介紹了如何用Java驗證pdf文件的電子章簽名,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • 詳解Java如何判斷ResultSet結(jié)果集是否為空

    詳解Java如何判斷ResultSet結(jié)果集是否為空

    ResultSet 表示 select 語句的查詢結(jié)果集。這篇文章主要為大家詳細介紹了Java如何判斷ResultSet結(jié)果集是否為空,感興趣的可以了解一下
    2023-02-02
  • springMVC+jersey實現(xiàn)跨服務(wù)器文件上傳

    springMVC+jersey實現(xiàn)跨服務(wù)器文件上傳

    這篇文章主要介紹了springMVC+jersey實現(xiàn)跨服務(wù)器文件上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java ClassLoader類加載器基礎(chǔ)詳解

    Java ClassLoader類加載器基礎(chǔ)詳解

    這篇文章主要為大家介紹了Java ClassLoader類加載器基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • java Volatile與Synchronized的區(qū)別

    java Volatile與Synchronized的區(qū)別

    這篇文章主要介紹了java Volatile與Synchronized的區(qū)別,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • JDK動態(tài)代理提高代碼可維護性和復(fù)用性利器

    JDK動態(tài)代理提高代碼可維護性和復(fù)用性利器

    這篇文章主要為大家介紹了JDK動態(tài)代理提高代碼可維護性和復(fù)用性利器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • SpringCloud邁向云原生的步驟

    SpringCloud邁向云原生的步驟

    這篇文章主要介紹了SpringCloud怎么邁向云原生,通過本文我們來梳理一下Spring?Cloud的前世今生,以及未來云原生發(fā)展的趨勢,可以給這些RPC框架的演進帶來一些啟發(fā),感興趣的朋友跟隨小編一起看看吧
    2022-10-10

最新評論