JAVA多线程访问UI线程问题

问题描述

做一个联网五子棋小程序,客户端开了一个线程接收服务器信息,那么如何在线程中访问UI线程的控件?

解决方案

解决方案二:
楼主描述的不是很清楚,所以我只能猜测是否是将UI控件定义成了局部变量,而不是全局变量?而且开启线程使用的是匿名内部类的方式。如果是这样,问题就出在匿名内部类中不能访问局部变量,要访问的话,变量需要加上final修饰符。所以楼主可试试在UI控件的声明上加上final

时间: 2024-08-03 17:38:03

JAVA多线程访问UI线程问题的相关文章

多线程问题-新手求助关于Java多线程中启动线程问题

问题描述 新手求助关于Java多线程中启动线程问题 public class Example15_1 { /** * @param args */public static void main(String[] args) { // TODO Auto-generated method stub SpeakHello speakHello; SpeakNinhao speakNinhao; speakHello = new SpeakHello(); speakNinhao= new Speak

详解Java多线程编程中线程的启动、中断或终止操作_java

线程启动: 1.start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法.start()不能被重复调用. run() : run()就和普通的成员方法一样,可以被重复调用.单独调用run()的话,会在当前线程中执行run(),而并不会启动新线程! 下面以代码来进行说明. class MyThread extends Thread{ public void run(){ ... } }; MyThread mythread = new

Java多线程编程中线程锁与读写锁的使用示例_java

线程锁LockLock  相当于 当前对象的 Synchronized import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* * Lock lock = new ReentrantLock(); * lock.lock(); lock.unLock(); * 类似于 synchronized,但不能与synchronized 混用 */ public class Lo

java多线程学习之线程同步

基本上感觉自己学习的东西都是学会了立马就用,很少有机会能专门花时间去学习一些东西,近些时候不忙,准备把公司的面试题全做一遍,难的倒是不多,但是很多人都不会做,问题就是出在实践上. 言归正传.多线程就目前而言,纯是兴趣上的学习,并没有真实的应用场景.以前觉java多线程很乱,很多概念没似懂非懂,但是实战中写几个实例就一目了然了. 昨天练习线程安全时提到了synchronized关键字,其作用原理其实就是把一个或者一部份资源锁住,只允许当前这个进程使用.我理解线程同步就让各个线程之间能够控制资源的分

JAVA多线程机制之线程创建

在Java中创建线程有两种方式,一种是继承Thread,另一种是实现Runnable接口,Thread实际上也实现了Runnable接口. Thread 构造方法 方法名 说明 Thread() 分配新的 Thread 对象 Thread(Runnable target) 分配新的 Thread 对象 Thread(Runnable target, String name) 分配新的 Thread 对象 Thread(String name) 分配新的 Thread 对象 Thread(Thre

JAVA多线程机制之线程概念

在操作系统中,一个独立的正在运行的程序称为进程,通常一个程序又被分为称作任务的小块,任务又可以进一步分为称作线程的更小的块.如果一个程序多于一个线程同时执行,就可以称为多线程并行. 一个线程被定义为一个单一的连续控制流,线程也可以成为执行环境或者轻量级程序.当一个程序发起之后,会首先生成一个缺省的线程,这个线程被称作主线程,就是由main方法引导进入的线程,main方法调用的方法结构会在这个主线程中顺序执行.如果在线程中新建并启动的线程称为从线程.从线程也有自己的入口方法,这是由开发者自己定义的

JAVA多线程摘要之线程启动

线程的创建和启动 java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一 个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就 结束了.一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一 个新实例,再启动一个新线程. Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且 ,启动线程的唯一方法就是通过Thread类的start()实例方法: Thread t = new Thread(); t.start(

java多线程编程之线程的生命周期_java

复制代码 代码如下: // 开始线程public void start( );public void run( ); // 挂起和唤醒线程public void resume( ); // 不建议使用public void suspend( );// 不建议使用public static void sleep(long millis);public static void sleep(long millis, int nanos); // 终止线程public void stop( );   /

Java多线程之中断线程(Interrupt)的使用详解_java

interrupt方法 interrupt字面上是中断的意思,但在Java里Thread.interrupt()方法实际上通过某种方式通知线程,并不会直接中止该线程.具体做什么事情由写代码的人决定,通常我们会中止该线程.     如果线程在调用Object类的wait().wait(long)或wait(long, int)方法,或者该类的 join() .join(long) .join(long, int) .sleep(long) 或 sleep(long, int) 方法过程中受阻,则其