瞎搞的界面展示:
游戏规则:
小游戏的游戏的规则,在10秒内答题,答题记录放入下面的文本区域内,时间到达之后不允许答题,非数字的输入无效,输入之后可以直接回车。
瞎闹:
package Jaddplay;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.Timer;
public class AddPlay extends JFrame {
private static JLabel label1,label2,label3,label4,label5;//标签
private static JButton button,button1;//按钮
private static JTextField textField1;//文本框
private static JTextField textField2,textField3;
private JTextArea textArea1;//文本域
private Thread thread;//线程对象
private JMenuBar menubar;
private JMenu menu;
private JMenuItem item1,item2;
private Icon icon;
public AddPlay() {}
public AddPlay(String string,Thread th1)
{
thread=th1;//构造方法内构造线程对象
Font font = new Font("",Font.BOLD ,32);//设置字体对象
//icon=new ImageIcon("开始.png");
label1=new JLabel("+");//标签参数设置
label1.setFont(font);
label1.setForeground(Color.white);//设置标签内文字颜色
label1.setEnabled (true);
label2=new JLabel("=");
label2.setForeground(Color.white);
label2.setFont(font);
label2.setEnabled(true);//设置标签是否可以更改
label3=new JLabel("答案:");
label3.setFont(font);
label3.setForeground(Color.white);
label3.setEnabled(true);
label4=new JLabel(" ");
label4.setFont(font);
label4.setEnabled(true);
label4.setForeground(Color.white);
label5=new JLabel("判断");
label5.setFont(font);
label5.setEnabled(true);
label5.setForeground(Color.white);
button= new JButton("确认");//按钮组件部分
button.setFont(font);
button.setForeground(Color.white);
button.setBackground(new Color(65,141,141));
button1=new JButton("开始");
button1.setFont(font);
button1.setForeground(Color.white);
button1.setBackground(new Color(62,88,201));
textField1 =new JTextField(5);//文本框组件部分
textField1.setFont(font);
textField1.setBackground(new Color(238,234,231));
textField2 = new JTextField(5);
textField2.setFont(font);
textField2.setBackground(new Color(238,234,231));
textField3 = new JTextField(5);
textField3.setFont(font);
textField3.setBackground(new Color(238,234,231));
textArea1=new JTextArea(10,30);//设置文本域组件
JScrollPane scrollPane=new JScrollPane(textArea1);//设置文本域滚动面板
textArea1.setFont(font);
textArea1.setBackground(new Color(60,152,160));
JPanel panel1 = new JPanel();//设置面板1的布局
JPanel panel2 = new JPanel();//设置面板2的布局
panel1.setLayout(new FlowLayout());
panel2.setLayout(new FlowLayout());
panel1.setBackground(new Color(12,72,83));
panel2.setBackground(new Color(12,72,83));
panel1.add(textField1);
panel1.add(label1);
panel1.add(textField2);
panel1.add(label2);
panel1.add(textField3);
panel1.add(button);
panel1.add(button1);
panel1.add(label3);
panel1.add(label5);
panel2.add(label4);
this.setTitle(string);//设置窗口布局
this.setBackground(new Color(36,82,132));
this.setLayout(new BorderLayout());
this.setBackground(Color.pink);
this.add(panel2, BorderLayout.NORTH);
this.add(panel1, BorderLayout.CENTER);
this.add(scrollPane, BorderLayout.SOUTH);
this.pack();//调整该窗口为最佳尺度
this.setVisible(true) ; //将面板可视化
int t1=(int)(Math.random()*10+1);
int t2=(int)(Math.random()*10+1);
textField1.setText(""+t1);
textField2.setText(""+t2);
button.addActionListener(new Sure());//将监听器加组件上
button1.addActionListener(new Star());
textField3.addKeyListener(new KeyDowd());
textField3.requestFocus();//光标焦距到文本框
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
/*测试学习部分
menubar=new JMenuBar();
menu=new JMenu("文件");
item1=new JMenuItem("打开");
item2=new JMenuItem("保存");
menu.add(item1);
menu.add(item2);
menubar.add(menu);
this.setJMenuBar(menubar);
validate();
*/
}
class Star implements ActionListener {//开始按钮监听器
public void actionPerformed(ActionEvent e){
try {
textField3.requestFocus();
thread.start();
Thread.sleep(1000);
}catch(Exception a) {
System.out.println("不要重复点开始嘛!");
}
}
}
class Sure implements ActionListener{ //确定按钮监听器
public void actionPerformed(ActionEvent e){
try {
String t1=textField1.getText();
String t2=textField2.getText();
String t3=textField3.getText();
int a1 = Integer.parseInt(t1);
int a2 = Integer.parseInt(t2);
int a3 = Integer.parseInt(t3);
if(a1+a2==a3){
label5.setText("正确");
label5.setForeground(Color.green);
textArea1.append(a1+"+"+a2+"="+a3+" "+"正确\n");
textField3.setText("");
}
else {
label5.setText("错误");
label5.setForeground(Color.red);
textArea1.append(a1+"+"+a2+"="+a3+" "+"错误\n");
textField3.setText("");
}
}
catch(NumberFormatException er){
textArea1.append("您设置的格式出错!\n");
}
finally {
int t1=(int)(Math.random()*10+1);
int t2=(int)(Math.random()*10+1);
textField1.setText(""+t1);
textField2.setText(""+t2);
textField3.requestFocus();
}
}
}
class KeyDowd extends KeyAdapter{ //C实现了接口KeyListener中所有方法
public void keyPressed(KeyEvent e) {
int c =(int)e.getKeyChar();
if ( c== '\n' ) {//遇到键盘回车监听器
try {
String t1=textField1.getText();
String t2=textField2.getText();
String t3=textField3.getText();
int a1 = Integer.parseInt(t1);
int a2 = Integer.parseInt(t2);
int a3 = Integer.parseInt(t3);
if(a1+a2==a3){
label5.setText("正确");
label5.setForeground(Color.green);
textArea1.append(a1+"+"+a2+"="+a3+" "+"正确\n");
textField3.setText("");
}
else {
label5.setText("错误");
label5.setForeground(Color.red);
textArea1.append(a1+"+"+a2+"="+a3+" "+"错误\n");
textField3.setText("");
}
}
catch(Exception ex) {
System.out.println(ex);
System.out.println("未知异常!游戏结束!");
}
finally {
int t1=(int)(Math.random()*10+1);
int t2=(int)(Math.random()*10+1);
textField1.setText(""+t1);
textField2.setText(""+t2);
textField3.requestFocus();
}
}
}
public void keyTyped(KeyEvent e) {//判断输入的时候是否数字
int c =(int)e.getKeyChar();
if (!(c >= '0' && c <= '9')) {
e.consume();//释放键盘的字
}
}
public void keyReleased(KeyEvent e){
}
}
class Plan implements Runnable{//设置任务的线程
int count=0;
@Override
public void run(){
while(true)
{
try {
Thread.sleep(1000);
if(count==10)
{
button.setEnabled(false);
textField3.setEnabled(false);
break;
}
count++;
button1.setText(""+count);
System.out.println(count);
}catch(Exception b) {
System.out.println(b);
}
button1.setText(""+count);
}
}
}
public static void main(String[] args) throws InterruptedException{
Plan plan=new AddPlay().new Plan();
Thread t1= new Thread(plan);//建立线程
new AddPlay("两数之和小游戏",t1);
LinkedList list=new LinkedList();
/*用timer类建立单线程实行计数
Timer timer = new Timer();
timer.schedule(new TimerTask(){
int count = 0;
public void run(){
textField3.requestFocus();
if(count==9) {
System.out.println("游戏结束!");
button.setEnabled(false);
textField3.setEnabled(false);
timer.cancel();
}
synchronized (this) {
count=count+1;
button1.setText(""+count);
}
}},1000,1000);
*/
}
}
话痨:
在学习Java这门课程的小程序,分享给大家,希望有用,小弟能力不才,望有高人指点。
花哥哥严肃说:
所学的知识均从课本,课外读物,网上收集资料,如果哪有侵权惹到您不开心丫,此外还有我也是小白,如果哪有认识不对的地方还请您抽我一耳光说我哪错了,我一定会感谢,联系企鹅号:184820911,有哪不明白或没事都可以找我,陪聊,陪吃不陪睡。