`
linsyyang
  • 浏览: 5547 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

编程问题(1)

阅读更多
在写线程小球的代码的时候遇到的几个方面的问题
1.线程的创建位置的选择
2.传递参数
3.学会把程序写的更容易看懂和改写

首先,是线程位置的选择或者说是整个程序流程。在最初测试线程时,目的是每按一次按钮都能让小球从初始位置跑出来,
而后来,要实现小球的随按钮的按下而停止或者继续跑的功能时,因为按钮的动作是导致线程的运行变化,所以所以线程
的实例化必须要在按钮监听器之外,按钮监听器中只需要改变线程的内部属性值。

然后,是参数的传递。在这个程序中,我定义了3个类,一个包含主函数的测试类,一个实现按钮监听器的类和一个线程类。
测试类中主要实现界面的绘制和调用监听器和线程,线程类包含了绘制小球的方法和控制小球运动与停止的属性on_off
和改变该属性的方法change。监听器主要是修改线程类的内部的开关on_off属性。1)从监听器开始,因为属性on_off
是内部私有属性,方法change也是Thread类的私有方法,所以必须要在监听器类中调入一个Thread类的对象并设置
一个属性保存on_off的值,所以需要创建两个属性并重载其构造方法,传入Thread的对象和画布,然后在事件处理时
改变Thread类的属性值。2)Thread类中,需要监听器中改变了的on_off属性来控制小球的运动和停止,所以要传入
监听其中改变了的属性on_off,然后在根据属性来控制小球。反正,需要什么就去拿什么,根据应用来实现类的创建。

程序代码
//主函数测试类
public class PubbleRun {

/**建立窗口,当按下按钮"run"时,从窗口四个角各跑出一个小球
* @param args
*/
public static void main(String[] args) {
JFrame jf=new JFrame();
jf.setTitle("Pubble Run");
jf.setSize(600, 600);
JButton jb=new JButton("跑吧");
jb.setPreferredSize(new Dimension(80,50));
jf.add(jb);
jf.setLayout(new FlowLayout());
jf.setVisible(true);

Graphics g=jf.getGraphics();
PubbleThread ptlu=new PubbleThread(g,true);
ptlu.start();

ButtonActionListener l=new ButtonActionListener(g,ptlu);
jb.addActionListener(l);
}
}

//监听器类
ublic class ButtonActionListener implements ActionListener{
private Graphics g;
private int on_off=1;
private PubbleThread ptlu;

public ButtonActionListener(Graphics g,PubbleThread ptlu){
this.g=g;
this.ptlu=ptlu;
}

public void actionPerformed(ActionEvent e) {
ptlu.change();
}

//线程类
public class PubbleThread extends Thread{
private Graphics g;
private boolean on_off;

public PubbleThread(Graphics g,boolean on_off){
this.g=g;
this.on_off=on_off;
}

public void change(){
on_off =!on_off;

}

public void run(){
graw();
}

public void graw(){
....
....
}

}

还有一个就是从同学的指导中学到的,就是尽量不要在系统中已有的方法中写太多东西,如果实在有很多东西要补充,可
以再自己写一个方法然后从系统中自带的方法复写时调用就行了。

总之,敲代码需要的逻辑性和思维性还需要很多很多的练习才能一步一步慢慢训练出来。重要的是脚踏实地,不要急功近利
慢慢的一步一步去实现。不要急,不要焦躁,相信自己。
分享到:
评论

相关推荐

    Vue技术七大问题避坑指南+编程技术开发+编程问题+编程案例

    Vue技术七大问题避坑指南+编程技术开发+编程问题+编程案例Vue技术七大问题避坑指南+编程技术开发+编程问题+编程案例Vue技术七大问题避坑指南+编程技术开发+编程问题+编程案例Vue技术七大问题避坑指南+编程技术开发+...

    FX1N编程手册FX1N编程手册

    这份编程手册对于初学者和经验丰富的工程师来说都是宝贵的参考资料,它将帮助你快速掌握FX1N PLC的编程技巧,提高工作效率,解决实际工程问题。通过深入学习和实践,你可以灵活运用FX1N PLC实现各种复杂的控制任务,...

    编程珠玑 编程珠玑 编程珠玑 编程

    书中涵盖了一系列实用的编程问题和解决方案,这些“珠玑”般的编程智慧,无论对于初学者还是经验丰富的开发者,都有着极高的参考价值。 编程珠玑的核心概念之一是数据结构与算法的选择和设计。书中的例子多以实际...

    UNIX环境高级编程+UNIX网络编程卷1.PDF版

    《UNIX环境高级编程》与《UNIX网络编程卷1:协议》是两本深入解析UNIX系统编程的经典著作。在深入理解这些书籍的知识点之前,我们先要了解UNIX系统的基础概念。 UNIX是一个多用户、多任务的操作系统,其设计哲学...

    青少年编程能力等级 第1部分:图形化编程.pdf

    从内容上看,标准文档可能包含多个部分,这里是“第1部分:图形化编程”,说明该标准是由若干部分组成的,且本部分专门针对图形化编程。由于所提供的内容段落出现了大量重复和无意义的文字,我们可以推断这可能是...

    UNIX网络编程卷1.pdf

    《UNIX网络编程卷1》是网络编程领域的一本经典著作,由W. Richard Stevens撰写,主要探讨了在UNIX操作系统环境下如何进行网络通信。这本书详细介绍了socket接口,它是UNIX和其他类UNIX系统中实现网络通信的核心机制...

    NOC编程猫创新编程赛题2(精选题)模拟测试题附答案

    在问题 1 中,小可编写了几个脚本,不必重新开始就能实现按下按键 a 时,角色移动;放开按键 a 后,角色停止移动的功能。这个问题考察了变量和条件语句的使用。 Scratch 编程语言中,可以使用变量来存储数据,并使用...

    对于ISP编程进入不了编程模式的总结

    本文将针对ISP编程过程中无法进入编程模式的问题进行深入分析,并提供相应的解决方案。 #### 一、连接接线错误 1. **检查接线**:确保所有的线路都按照正确的顺序和方式连接。特别是对于自行焊接的万用板,应该...

    函数式编程思维.pdf_函数式编程_函数式编程思维_

    在"函数式编程思维"中,程序员会倾向于用数据流和变换来思考问题,而不是通过控制流程来解决问题。这种方式可以提高代码的可读性和可维护性,因为函数式编程通常会产生更简洁、更模块化的代码。此外,由于函数式编程...

    编程猫:孩子们写的编程入门书.pptx

    《编程猫:孩子们写的编程入门书》是一本专为孩子们编写的编程入门书籍,它以可爱的编程猫形象,生动地介绍了编程的基本概念和技能。这本书的目的是激发孩子们对编程的兴趣,帮助他们建立逻辑思维和创造力。 这本书...

    编程心得体会 编程心得体会 编程心得体会

    比如,将现实生活中的问题(如调换饮料)与编程问题(如交换变量值)类比,这种思维方式可以激发创新的解决方案。 通过这样的课程设计和学习过程,我们不仅提升了编程技能,还锻炼了解决问题的能力,学会了如何将...

    太戈编程345题赏鉴!

    编程是解决实际问题的一种方法,编程题库能够帮助学习者将理论知识与实践相结合,通过解决实际问题来提升个人的编程技能。 此外,编程题目往往需要严密的逻辑思维和系统的解题方法,这345题的难度可能会从简单到...

    C++编程规范 C++编程规范 C++编程规范

    C++编程规范 C++编程规范是一种详细的编程指南,旨在提高程序员的编程能力和软件质量。本书从编程老手与高手的误区开始,指出编程高手的误区和缺点,然后通过作者的个人经历,讲述了软件设计的基础知识和高质量程序...

    规划问题编程软件教程

    Lingo教程,解决各种规划问题编程软件

    编程猫基础练习题模拟测试题附答案

    对于问题1,正确答案是AB积木,可以让角色向上移动。 2. 事件处理:编程猫平台上有多种事件处理方式,例如点击事件、键盘事件等。对于问题2,正确答案是CD积木,不是事件积木盒子内的代码。 3. 角色变大:编程猫...

    MFC编程教程课件.rar 一般编程问题

    MFC编程教程课件.rar 一般编程问题 【实例简介】 南京邮电大学本科生MFC课件,内含全部教程和编程试验! 【核心代码】 16359647507888125065.rar └── windows编程 ├── 01.ppt ├── 01_VC6程序.rar ├── 02...

    Agilent信号源编程指南_仪器指南、编程_

    除了编程技术,指南还涵盖了调试策略和常见问题的解决方案,帮助用户在遇到问题时能迅速定位并解决,确保实验或测试流程的顺利进行。 总之,《安捷伦信号源编程指南》是一本全面的参考资料,对于需要通过编程控制...

    MPI OpenMP混合编程解决N-Body问题

    【MPI与OpenMP混合编程】 ...总结,MPI/OpenMP混合编程是解决大规模并行问题的有效手段,尤其适用于N-Body问题。通过这种方式,可以实现更高程度的并行化,提高计算效率,同时培养学生的高性能计算理论知识和实践经验。

    少儿python编程教学 少儿编程python授课ppt

    除了技术层面的知识,少儿Python编程课程更注重培养孩子们的逻辑思维、问题解决和创新意识。通过编程,孩子们将学会如何分解问题、抽象思维,这对他们的未来学习和生活都将大有裨益。 总的来说,"少儿Python编程...

    中小学编程第一课:认识Python编程基础(1).pptx

    在这一课中,我们初步了解了Python编程的基础,认识到编程的本质是解决问题的步骤,学习了Python在教育和专业领域的应用,以及如何通过实践和思考来学习编程。通过绘制思维导图,我们可以更好地巩固所学内容,为后续...

Global site tag (gtag.js) - Google Analytics