在写线程小球的代码的时候遇到的几个方面的问题
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(){
....
....
}
}
还有一个就是从同学的指导中学到的,就是尽量不要在系统中已有的方法中写太多东西,如果实在有很多东西要补充,可
以再自己写一个方法然后从系统中自带的方法复写时调用就行了。
总之,敲代码需要的逻辑性和思维性还需要很多很多的练习才能一步一步慢慢训练出来。重要的是脚踏实地,不要急功近利
慢慢的一步一步去实现。不要急,不要焦躁,相信自己。
分享到:
相关推荐
C语言编程常见问题,提供一些常见问题的处理方法
AT编程的常见问题,资料来源网络,希望对大家有用。AT编程的常见问题,资料来源网络,希望大家有用。
西门子plc编程软件PCS 7中顺序功能图SFC编程常见问题集
Java编程:常见问题汇总
西门子PLC编程常见问题doc,提供“西门子PLC编程常见问题”免费资料下载,本文介绍了S7-300在编程中出现的各种问题及解决方法,可供学习使用。
c语言的编程常见问题解答
求教一道关于求解最优化问题的编程问题~
西门子PLC常见编程问题点总结(S7-300_S7-1200)
labview的josephus问题编程
C语言编程常见问题解答
Lingo教程,解决各种规划问题编程软件
VB6.0的编程问题
108个常见编程问题的解决源代码
在编程中会遇到很多问题,本文中列绝了遇到的的一些列问题及主要解决方法
解决多线程编程中的同步互斥问题
C++编程规范和常见问题 对初学者有一定帮助
欧姆龙CJ1M编程电缆内部接线 ,正宗的,没问题呦,真的呀!
python青少年趣味编程旨在让中小学生了解编程,学习编程,运用编程,综合数学、英语等多学科,引导青少年学生学习python编程知识点,加深对编程的理解,培养并锻炼逻辑思维、提高分析问题、解决问题的能力。...
n编程知识点,加深对编程的理解,培养并锻炼逻辑思维、提高分析问题、解决 问题的能力。感受python编程的强大魅力。 二、 课程任务要求 通过本课程的学习,我们应该学会python开发环境的基础搭建、掌握python编程的 ...
Java 编程 :常见问题汇总 ,适合出现者,Java