WARNING [org.netbeans.core.windows.WindowManagerImpl]
java.lang.IllegalStateException: Problem in some module which uses Window System: Window System API is required to be called from AWT thread only, see http://core.netbeans.org/proposals/threading/
简单说明:
此问题出现的原因大概是:Window System API 只能被AWT 线程(主线程)调用。也可以简单理解为,在别的线程里面不能对netbeans的控件进行操作,比如给控件赋值等。
1.其他线程怎么操作【netbeans的控件】?
2.用设计模式中的一种【观察者模式】。线程只负责传值。观察者负责处理问题。
3.例子代码。(
代码不能直接使用)
4.ObserverBridgeRunnable.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
imports..
/**
* 自定义线程
* @author gby
*/
public class ObserverBridgeRunnable implements Runnable {
private DataObservable dataObservable;
public ObserverBridgeRunnable(DataObservable DataObservable) {
this.DataObservable = DataObservable;
}
@Override
public void run() {
HandledData handledData = new HandledData();
DataObservable.handleTcpData(handledData);
}
}
5.DataObservable.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
imports..
/**
* 被观察者
* Tcp通讯被监视者
* @author gby
*/
public class DataObservable extends Observable {
private static DataObservable instance = null;
private DataObservable() {
}
public static synchronized DataObservable getInstance() {
if (instance == null) {
instance = new DataObservable();
}
return instance;
}
public static DataObservable newInstance() {
return new DataObservable();
}
public void handleTcpData(Object data) {
super.setChanged();
notifyObservers(data);
}
}
6.DataObserver.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
imports..
/**
* 观察者
* @author gby
*/
public class DataObserver implements Observer {
@Override
public void update(Observable o, final Object arg) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
HandledData handledData = (HandledData) arg;
// 处理数据
Manage.hanled(handledData);
}
});
}
}
【4,5,6】为处理所需的类,【7】为调用方法。
7.调用方法
// 建立观察者模式
DataObservable DataObservable = DataObservable.newInstance();
DataObservable.addObserver(new DataObserver());
// 处理数据
ObserverBridgeRunnable observerBridgeRunnable = new ObserverBridgeRunnable(inputStreamReader, DataObservable);
Thread thread = new Thread(observerBridgeRunnable);
thread.start();
引用
Cobble.Ge 于 合肥 公司 20120525
分享到:
相关推荐
Java Socket多线程聊天软件是基于Java编程语言构建的一个网络通信应用,主要利用Socket API来实现客户端与服务器之间的实时通信。在这个系统中,服务器端能够同时处理多个客户端连接,这得益于Java的多线程特性。SWT...
本项目"Java实现多线程下载源代码"正是这样一个示例,它使用了NetBeans IDE创建用户界面,使得用户能够更加直观地管理和监控下载过程。 首先,我们来深入理解Java中的多线程。在Java中,线程是程序执行的最小单位,...
Java多线程技术是编程领域中的重要概念,尤其在开发高效、并发的网络应用程序时,如简易聊天程序,它的应用尤为关键。在这个“java 多线程简易聊天 精简版”项目中,我们将深入探讨Java如何实现多线程环境下的客户端...
Ubuntu 配置 Netbeans 8.2 Ubuntu 是一个流行的 Linux 发行版,而 Netbeans 是一个功能强大的集成开发环境(IDE)。在本文中,我们将指导您如何在 Ubuntu 20.04 上配置 Netbeans 8.2。 标题解释 Ubuntu 配置 ...
netbeans字体配置文件.netbeans字体配置文件netbeans字体配置文件.netbeans字体配置文件netbeans字体配置文件.netbeans字体配置文件netbeans字体配置文件.netbeans字体配置文件netbeans字体配置文件.netbeans字体...
NetBeans IDE 6.0 用户界面设计 NetBeans IDE 6.0 用户界面设计是 Java 开发人员的热门话题。自 NetBeans 5.0 以来,人们最常谈及的且具有创新性的特性是 Project Matisse 或 Form Editor。许多人都认为,在不同 ...
NetBeans是一款功能强大的开源集成开发环境(IDE),尤其适合Java编程。这个教程将带你深入了解如何有效地使用NetBeans来编译和运行Java程序。NetBeans以其直观的用户界面、丰富的特性集以及对Java SE、Java EE和...
NetBeans是一款广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中深受开发者喜爱。它提供了丰富的功能,包括代码编辑、调试、构建和部署等,为开发者提供了高效的工作环境。这个"NetBeans安装包.rar"文件是...
在IT领域,开发一款“桌面精灵应用”涉及多种关键技术,如多线程、滚动字幕、万年历计算以及定时提醒。以下将详细介绍这些技术及其在项目中的应用。 首先,多线程技术是现代计算机程序设计中的核心概念,特别是在...
Apache-NetBeans 21安装包
NetBeans是一款广受欢迎的开源集成开发环境(IDE),专为编程者提供了一个高效、便捷的平台,用于构建...同时,其开源和免费的特性,以及对多语言和新技术的持续支持,使得NetBeans在开发者社区中保持着极高的评价。
NetBeans是当前市场上最为流行的、源代码开放且免费的集成开发环境。NetBeans不仅可以作为Java开发工具,还可以使用它开发标准的Java程序、Web应用程序、Java EE企业级应用程序、Java ME手机应用程序等,还能够开发...
NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码供开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL...
NetBeans是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者中颇受欢迎。它提供了丰富的功能,包括代码编辑、调试、构建以及项目管理等。在追求个性化和提高工作效率的现代编程环境中,编辑器的外观和感觉...
请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜 请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜 请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜 请下载java netbeans ...
用NetBeans编的一个Java多线程下载程序,这只是一个JAR包,大家可以感受下哈!
NetBeans IDE 8.0 for Linux 是一个专为开发人员设计的强大集成开发环境(IDE),尤其适用于编写Java应用程序。此版本特别针对Linux操作系统进行了优化,提供了丰富的功能集,旨在提高在Linux平台上的开发效率。 ...
在NetBeans中添加背景图片是一项常见的个性化设置任务,可以让你的开发环境更加独特且符合个人审美。NetBeans是一个流行的开源集成开发环境(IDE),支持多种编程语言,如Java、C++、PHP等。通过自定义背景图片,...
3. 项目结构:在 NetBeans IDE 中,一个项目由多个组件组成,包括项目窗口、源码编辑器窗口和导航器窗口等。 4. Java 代码编写:在 NetBeans IDE 中,可以编写 Java 代码,包括添加代码、编译和运行等步骤。 5. ...