刚学Java,请教一个问题,谢谢

问题描述

importjavax.swing.*;importjava.awt.event.*;publicclassLottoEventimplementsItemListener,ActionListener,Runnable{LottoMadnessgui;Threadplaying;publicLottoEvent(LottoMadnessin){gui=in;}publicvoidactionPerformed(ActionEventevent){Stringcommand=event.getActionCommand();if(command=="Play"){startPlaying();}if(command=="Stop"){stopPlaying();}if(command=="Reset"){clearAllFields();}}voidstartPlaying(){playing=newThread(this);playing.start();gui.play.setEnabled(false);gui.stop.setEnabled(true);gui.reset.setEnabled(false);gui.quickpick.setEnabled(false);gui.personal.setEnabled(false);}voidstopPlaying(){gui.stop.setEnabled(false);gui.play.setEnabled(true);gui.reset.setEnabled(true);gui.quickpick.setEnabled(true);gui.personal.setEnabled(true);playing=null;}voidclearAllFields(){for(inti=0;i<6;i++){gui.numbers[i].setText(null);gui.winners[i].setText(null);}gui.got3.setText("0");gui.got4.setText("0");gui.got5.setText("0");gui.got6.setText("0");gui.drawings.setText("0");gui.years.setText(null);}publicvoiditemStateChanged(ItemEventevent){Objectitem=event.getItem();if(item==gui.quickpick){for(inti=0;i<6;i++){intpick;do{pick=(int)Math.floor(Math.random()*50+1);}while(numberGone(pick,gui.numbers,i));gui.numbers[i].setText(""+pick);}}else{for(inti=0;i<6;i++){gui.numbers[i].setText(null);}}}voidaddOneToField(JTextFieldfield){intnum=Integer.parseInt("0"+field.getText());num++;field.setText(""+num);}booleannumberGone(intnum,JTextField[]pastNums,intcount){for(inti=0;i<count;i++){if(Integer.parseInt(pastNums[i].getText())==num){returntrue;}}returnfalse;}booleanmatchedOne(JTextFieldwin,JTextField[]allPicks){for(inti=0;i<6;i++){StringwinText=win.getText();if(winText.equals(allPicks[i].getText())){returntrue;}}returnfalse;}publicvoidrun(){ThreadthisThread=Thread.currentThread();while(playing==thisThread){addOneToField(gui.drawings);intdraw=Integer.parseInt(gui.drawings.getText());floatnumYears=(float)draw/104;gui.years.setText(""+numYears);intmatches=0;for(inti=0;i<6;i++){intball;do{ball=(int)Math.floor(Math.random()*50+1);}while(numberGone(ball,gui.winners,i));gui.winners[i].setText(""+ball);if(matchedOne(gui.winners[i],gui.numbers)){matches++;}}switch(matches){case3:addOneToField(gui.got3);break;case4:addOneToField(gui.got4);break;case5:addOneToField(gui.got5);break;case6:addOneToField(gui.got6);gui.stop.setEnabled(false);gui.play.setEnabled(true);playing=null;}try{Thread.sleep(100);}catch(InterruptedExceptione){//donothing}}}}

importjava.awt.*;importjavax.swing.*;publicclassLottoMadnessextendsJFrame{LottoEventlotto=newLottoEvent(this);//setuprow1JPanelrow1=newJPanel();ButtonGroupoption=newButtonGroup();JCheckBoxquickpick=newJCheckBox("QuickPick",false);JCheckBoxpersonal=newJCheckBox("Personal",true);//setuprow2JPanelrow2=newJPanel();JLabelnumbersLabel=newJLabel("Yourpicks:",JLabel.RIGHT);JTextField[]numbers=newJTextField[6];JLabelwinnersLabel=newJLabel("Winners:",JLabel.RIGHT);JTextField[]winners=newJTextField[6];//setuprow3JPanelrow3=newJPanel();JButtonstop=newJButton("Stop");JButtonplay=newJButton("Play");JButtonreset=newJButton("Reset");//setuprow4JPanelrow4=newJPanel();JLabelgot3Label=newJLabel("3of6:",JLabel.RIGHT);JTextFieldgot3=newJTextField("0");JLabelgot4Label=newJLabel("4of6:",JLabel.RIGHT);JTextFieldgot4=newJTextField("0");JLabelgot5Label=newJLabel("5of6:",JLabel.RIGHT);JTextFieldgot5=newJTextField("0");JLabelgot6Label=newJLabel("6of6:",JLabel.RIGHT);JTextFieldgot6=newJTextField("0",10);JLabeldrawingsLabel=newJLabel("Drawings:",JLabel.RIGHT);JTextFielddrawings=newJTextField("0");JLabelyearsLabel=newJLabel("Years:",JLabel.RIGHT);JTextFieldyears=newJTextField();publicLottoMadness(){super("LottoMadness");setSize(550,270);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);GridLayoutlayout=newGridLayout(5,1,10,10);setLayout(layout);//Addlistenersquickpick.addItemListener(lotto);personal.addItemListener(lotto);stop.addActionListener(lotto);play.addActionListener(lotto);reset.addActionListener(lotto);FlowLayoutlayout1=newFlowLayout(FlowLayout.CENTER,10,10);option.add(quickpick);option.add(personal);row1.setLayout(layout1);row1.add(quickpick);row1.add(personal);add(row1);GridLayoutlayout2=newGridLayout(2,7,10,10);row2.setLayout(layout2);row2.add(numbersLabel);for(inti=0;i<6;i++){numbers[i]=newJTextField();row2.add(numbers[i]);}row2.add(winnersLabel);for(inti=0;i<6;i++){winners[i]=newJTextField();winners[i].setEditable(false);row2.add(winners[i]);}add(row2);FlowLayoutlayout3=newFlowLayout(FlowLayout.CENTER,10,10);row3.setLayout(layout3);stop.setEnabled(false);row3.add(stop);row3.add(play);row3.add(reset);add(row3);GridLayoutlayout4=newGridLayout(2,3,20,10);row4.setLayout(layout4);row4.add(got3Label);got3.setEditable(false);row4.add(got3);row4.add(got4Label);got4.setEditable(false);row4.add(got4);row4.add(got5Label);got5.setEditable(false);row4.add(got5);row4.add(got6Label);got6.setEditable(false);row4.add(got6);row4.add(drawingsLabel);drawings.setEditable(false);row4.add(drawings);row4.add(yearsLabel);years.setEditable(false);row4.add(years);add(row4);setVisible(true);}publicstaticvoidmain(String[]arguments){LottoMadnessframe=newLottoMadness();}}

请问第一个程序中:第8行的Threadplaying什么意思?第10行的(LottoMadnessin)这个用法怎么的?第28行,还是Thread。。有没有大虾给一个注册解释什么的啊。。。书上的程序没解释,好郁闷纳。谢谢大家。

解决方案

解决方案二:
LottoMadness应该是你继承自JFrame的一个类吧就是下面那个in就是这个类型的一个对象跟inta;是一个意思。Thread是线程,具体用法我也不是太清楚,可以去专门找资料学一下~
解决方案三:
好牛逼的样子,这还刚学?开什么玩笑!!1
解决方案四:
Threadplaying;就是新定义了一个线程;与这段代码playing=newThread(this);结合就是新建一个线程,因为java支持多线程的并发任务;等同于Threadplaying=newThread(this);

时间: 2025-01-30 10:08:35

刚学Java,请教一个问题,谢谢的相关文章

刚学java不久,一个关于添加学生姓名和删除姓名等编程.

问题描述 在里面添加学生姓名,删除学生姓名功能,老师提示说用数组然后用while,我不是很明白高手帮我添加下,最好有说明packagecom.mune.test;importjava.util.Scanner;publicclassMng{booleanbFlag=true;publicvoidprintMain(){//无限循环,不然程序就会直接结束.while(bFlag){System.out.println("************************************&qu

java小数转换-刚学java的新手遇到的问题

问题描述 刚学java的新手遇到的问题 题目是这样的,编一程序,将摄氏度换为华氏度.公式为:f=c*9/5+32.其中f为华氏度,c为摄氏度. 以下是我的代码 import java.util.*; public class Main{ public static void main (String[] args){ Scanner in1 = new Scanner(System.in); int c =in1.nextInt(); double f = c*9/5+32; System.ou

java-新人刚学Java,有个很纠结的点求帮忙解答

问题描述 新人刚学Java,有个很纠结的点求帮忙解答 JAVA 在定义一个类时候,在他的内部定义main方法, package com.pc; public class Person { private String name; private String job; private int age; public Person(String name, String job, int age){ this.name = name; this.job = job; this.age = age;

给所有刚学JAVA以及常来此版的兄弟

给所有刚学JAVA以及常来此版的兄弟 在坛子上,经常(注意,是经常,而且是非常经常!)碰到一些并不难的问题,甚至同一天就有很多类似的问题,我想作为版主,我不能光是给大家回答问题了(更何况还有很多问题我也不懂),而需要讲一下应该如何学习JAVA的问题了.我不想大家碰到了什么小问题,第一个想到的就是问人,这样是很难得到提高的! 以这两天的例子来说吧!是一个关于如何格式化日期的问题,有问如何将一个Date对象按自己需要的格式来以String输出.也有问,如何将一个给定格式的String类转换成Date

问一个web在tomcat中的servlet简单问题,刚学servlet编译一个文件通不过

问题描述 问一个web在tomcat中的servlet简单问题,刚学servlet编译一个文件通不过 在我tomcat中运行后 打开自己编写的一个HelloServlet文件打不开.怎么解决好? 错误500 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception ja

java基础-刚学Java碰到的的一些问题?

问题描述 刚学Java碰到的的一些问题? 1.collection与collections的有什么关系?2.List和Set有什么异同点?3.Map有哪些常用类和特点是什么? 解决方案 1.Collection 接口,Collections 包装类 http://pengcqu.iteye.com/blog/4921962.List有序,Set无序 http://jingyan.baidu.com/article/5d368d1e1887b93f60c057d0.html3.HashMap,Ha

刚学 java,有个小练习不明白,

问题描述 public class Puzzle4 {public static void main(String [] args) {Puzzle4b [] obs = new Puzzle4b[6];int y = 1;int x = 0;int result = 0;while (x < 6) {obs [x] = new Puzzle4b();obs[x].ivar = y;y = y * 10;x = x + 1;}x = 6;while (x > 0) {x = x - 1;res

Java刚入门,请教一个Menu添加弹出事件问题

问题描述 我定义了一个菜单如:importcom.extjs.gxt.ui.client.widget.menu.Menu;MenumOpState=newMenu();我想为Menu添加一个菜单弹出时发生的事件或者是鼠标移过的事件,该怎么写?谢谢各位帮帮忙 解决方案 本帖最后由 WellSwift2009 于 2009-06-25 10:15:57 编辑

刚学java求大神解答

问题描述 BigDecimalx=newBigDecimal("0.0");BigDecimalincr=newBigDecimal("0.1");MathContextmc=newMathContext(1,RoundingMode.CEILING);for(inti=0;i<=10;i++){System.out.println(x);x=x.add(incr,mc);中的x.add是什么意思,以及mathContext又是什么 解决方案 解决方案二:这些