在执行时间长点的任务是,主窗体不响应事件,这是因为你执行任务的线程是窗体的主线程,所有不能及时响应,应开新的线程里执行大任务。
使用线程例子
package com.urt.module; import javax.swing.*; import java.awt.event.*; import java.awt.*; //import com.borland.jbcl.layout.*; /** * Title: Description: Copyright: Copyright (c) 2002 Company: * * @author * @version 1.0 */ public class TestThread extends JFrame { JPanel jPanel1 = new JPanel(); //XYLayout xYLayout1 = new XYLayout(); JButton startButton = new JButton(); JButton stopButton = new JButton(); MyThread thread = null; public TestThread() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { //jPanel1.setLayout(xYLayout1); startButton.setText("start"); startButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { startButton_actionPerformed(e); } }); stopButton.setText("stop"); stopButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { stopButton_actionPerformed(e); } }); this.getContentPane().add(jPanel1, BorderLayout.CENTER); jPanel1.add(startButton); jPanel1.add(stopButton); } void startButton_actionPerformed(ActionEvent e) { if (thread != null) { thread.stop(); } thread = new MyThread(); thread.start(); } void stopButton_actionPerformed(ActionEvent e) { if (thread != null) { thread.stop(); } thread = null; } public static void main(String[] args) { TestThread test = new TestThread(); test.setSize(300, 400); test.show(); } private class MyThread extends Thread { public MyThread() { } public void run() { while (true) { try { sleep(100); } catch (InterruptedException e) { } System.out.println("this is a test!"); } } } }
简单的写法
private void btnCompareActionPerformed(java.awt.event.ActionEvent evt) { new Thread() { public void run() { //在这写代码,可以把逻辑写在另一个类里 //strOriginal } }.start(); }
在这也可以直接掉用另一个线程类去执行,记得调用是start(),不要调用run(),否则主窗体事件还是不能及时响应。
用Swing编写灵敏的图形用户界面
http://java.chinaitlab.com/Swing/23050.html
相关推荐
- 多线程:在处理耗时操作(如数据库查询)时,使用多线程避免阻塞用户界面。 - 数据结构与算法:如哈希表优化查找效率,队列用于管理待处理任务等。 此外,良好的软件工程实践也很关键,如编写清晰的注释、遵循...
开发者需要熟练掌握Java的多线程技术以提升用户体验,同时利用异常处理机制确保程序的稳定性。 总结,动物管理系统通过采用Java和Swing,实现了高效、友好的用户界面,满足了对动物信息的全方位管理需求。这种结合...
总的来说,基于JAVA的网络远程监控系统软件实现了对网络环境的全方位监控,结合了JAVA的网络编程、多线程、数据库操作、图形界面和Web服务等技术,为企业级的IT运维提供了有力的支持。其源码分析和学习,对于提升...
同时,为了实现动态更新,可能需要掌握事件驱动编程,确保当数据变化时,界面能及时响应。 此外,项目的结构很可能遵循了MVC(Model-View-Controller)设计模式,这是Java应用开发中常见的架构模式。Model负责数据...
Java的多线程支持可以帮助开发者处理这类问题,确保系统响应的及时性和稳定性。 7. **数据校验**:为了保证数据的准确性和完整性,系统会包含数据校验机制,如检查图书编号的唯一性、借阅日期的有效性等。 8. **...
利用Java的多线程和并发控制,可以实现高效的数据同步,确保房间状态信息的一致性。 5. **客户信息管理**:存储和管理客户的基本信息、消费记录等,为酒店提供客户分析数据,便于营销策略的制定。Java的面向对象...
- **多线程**:提高程序响应速度,例如在后台处理库存更新、数据备份等任务。 通过这个课程设计,初学者不仅能掌握JAVA编程技术,还能了解软件开发的整体流程,包括需求分析、设计、编码、测试和维护等环节。这将对...
- **多线程**:用于处理并发任务,提高系统的响应速度和吞吐量。 #### 三、系统功能模块 1. **数据处理**:包括对物流活动中的各项单据(入库单、出库单、退货单等)进行增删改查操作,以及流程控制,确保数据的...
3. 异步处理:通过Java的多线程技术,实现后台数据处理与前台展示的分离,提升系统的响应速度。 4. JDBC:Java Database Connectivity,是Java访问数据库的标准接口,用于与数据库建立连接、执行SQL语句和处理结果集...
5. **事件驱动与异步处理**:股票市场的快速变化要求插件能及时响应,这需要利用Java的事件驱动模型和异步编程技术,如CompletableFuture或Reactor。 6. **安全机制**:由于涉及金融交易,插件必须保证数据安全,...