`
laiseeme
  • 浏览: 124682 次
  • 性别: Icon_minigender_2
  • 来自: 沈阳
社区版块
存档分类
最新评论

swing与并发

阅读更多
swing多线程中有三种不同的线程

1 初始线程:创建一个可以运行的对象,主要负责图形化界面。二是将这个可运行的对象安 排到到事件分派线程中去执行。

2 事件分派线程:主要用来处理swing中的方法,因为大部分swing对象中的方法都不是线程安全的,所以需要事件分派线程来保证线程安全。

3 工作线程:一般用来处理比较耗时的任务,比如下载或者需要很长等待时间的任务。
分享到:
评论
3 楼 laiseeme 2009-03-12  
我靠 回复还不能编辑
2 楼 laiseeme 2009-03-12  
初始化线程
SwingUtilities
//这段程序代码主要为读者展示如何使用“SwingUtilities.invokeLater()”方法来处理不同的线程
import javax.swing.*;
class process  extends  Thread 
{
   static final int WIDTH=700;
   static final int HEIGHT=400;
	  public  process()
  {
    JFrame frame=new JFrame(“Swing多线程测试程序”);
    JPanel panel=new JPanel();
    frame.setContentPane(panel);
    JButton button1=new JButton(“按钮一”);
JButton button2=new JButton(“按钮二”);
JButton button3=new JButton(“按钮三”);
JButton button4=new JButton(“按钮四”);
panel.setLayout(new GridLayout(2,2));
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
int x=(width-WIDTH)/2;
int y=(height-HEIGHT)/2;
frame.setLocation(x,y);
frame.setVisible(true);
frame.setResizable(false);
}
}
public class test1
{
	static process p;
	public static void main(String[] args)
	{
		try
		{
		SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				p=new process();
				try
			    {
			    p.sleep(30000);
			    }catch(Exception e){}
				}
		});
		}catch(Exception e){}
	   JFrame frame=new JFrame(“Swing多线程测试程序”);
    JPanel panel=new JPanel();
    frame.setContentPane(panel);
    JButton button1=new JButton(“按钮一”);
JButton button2=new JButton(“按钮二”);
JButton button3=new JButton(“按钮三”);
JButton button4=new JButton(“按钮四”);
panel.setLayout(new GridLayout(2,2));
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
int x=(width-process.WIDTH)/2;
int y=(height- process.HEIGHT)/2;
frame.setLocation(x,y);
frame.setVisible(true);
frame.setResizable(false);
	}
}
1 楼 laiseeme 2009-03-12  
下面的看不懂了  我草

相关推荐

    Java Swing图形界面开发与案例详解

    本件超过了上传限制,请...第16~19章主要讲述有关Swing图形开发的其他知识,包括观感器、Swing线程与并发、模型与架构等。第20章通过一个综合实例使读者能够在实际开发中理解和巩固所学知识,从而提高综合应用能力。

    AWT与Swing使用区别

    这意味着在处理Swing组件时,需要确保所有对GUI的修改都在EDT内执行,以避免并发问题。 4. **布局管理** - **AWT**:AWT提供了多种布局管理器,如BorderLayout、CardLayout、FlowLayout、GridLayout和...

    90个java-swing基础例子.zip

    10. **线程管理**:Swing不是线程安全的,所有对Swing组件的修改应在Event Dispatch Thread (EDT)中进行,以避免并发问题。 通过这90个基础例子,你可以逐步了解和掌握如何使用Swing创建组件,布局组件,处理用户...

    java的swing实现计时与倒计时

    为了更新GUI,我们需要使用Swing的并发机制,比如SwingWorker,因为它可以在后台线程中执行计算,并在事件调度线程中安全地更新UI。 对于计时功能,我们可以在新的线程中不断累加当前时间,直到达到或超过用户设定...

    Java Swing图形界面开发与案例详解及随书实例代码

    最后,Swing应用程序通常是非线程安全的,这意味着所有的UI操作应该在Event Dispatch Thread (EDT)中执行,以避免并发问题。因此,你需要使用SwingUtilities的invokeLater或invokeAndWait方法来确保UI更新的正确性。...

    《java+swing图形界面开发与案例详解》源代码

    因为Swing不是线程安全的,所有对UI的操作都应在一个称为Event Dispatch Thread(EDT)的线程中进行,以避免并发问题。因此,耗时的操作(如网络请求或数据库查询)应放在后台线程(如通过SwingWorker实现)中执行,...

    java swing mysql实现的酒店管理系统项目源码_swing_JavaSwing_酒店管理系统_

    5. **JDBC(Java Database Connectivity)**: JDBC是Java连接数据库的标准API,它允许Java程序与各种数据库进行交互。在本项目中,通过JDBC驱动程序,Java代码可以连接到MySQL数据库,执行SQL语句,实现数据的读写...

    用swing制作的简单图书管理系统

    一、Swing基础与应用 Swing是Java Foundation Classes (JFC)的一部分,提供了大量的组件,如按钮、文本框、表格等,用于构建复杂的GUI。Swing组件基于Java的轻量级组件模型,相比早期的AWT,它具有更好的可定制性和...

    JavaSwing小程序

    因此,开发者需要理解Swing的并发模型,合理使用SwingWorker进行后台任务处理。 10. **Swing应用程序框架**:为了简化开发,Swing还提供了AbstractAction和ActionCommand等概念,以及像JFrame的...

    java中 Swing与IO的综合应用

    Java中的Swing库是用于构建桌面应用程序用户界面的强大工具,它提供了丰富的组件和设计模式,使得开发者能够创建出美观且功能齐全的图形...同时,它也可以作为进一步学习Java并发、数据库连接或其他高级技术的基础。

    JAVA 开发 Swing与多线程

    在Java开发中,Swing库是用来构建图形用户界面(GUI)的工具包,而多线程则是提升程序并发性能和响应能力的关键技术。Swing虽然是Java语言的一部分,但它设计为单线程模型,主要是为了简化GUI编程并避免复杂的同步...

    swing hacks 文档+code

    8. 多线程和并发:在Swing应用中,正确处理多线程至关重要,因为它可以避免UI冻结。文档会介绍如何在Swing中安全地使用线程,并展示最佳实践。 9. 示例代码:压缩包中的"swing-hacks-examples-20060109.zip"包含了...

    Swing学习系列 -- Swing读书笔记目录

    12. **线程管理**:Swing不是线程安全的,因此在更新UI时需要特别注意线程控制,避免出现"Deadlock"或"Race Condition"等并发问题。 通过深入阅读"精通Java Swing程序设计",开发者可以系统地学习和实践Swing的各种...

    java swing界面教程

    这是Swing中的并发处理机制,有助于实现UI的响应性。 10. **JTable和JTree**:这两个组件分别用于显示表格数据和树形结构数据,它们提供了丰富的功能,如排序、过滤、编辑等,并且可以与模型对象绑定。 在实际开发...

    java swing 实现的word文档转换成pdf文档

    总的来说,通过Java Swing实现Word转PDF的功能涉及了多个技术领域,包括Java GUI编程、文件I/O、文档解析和生成、以及可能的并发处理。这个过程需要对Java和相关库有深入的理解,同时也展示了Java作为强大工具在跨...

    java swing游戏开发

    其次,Swing支持事件处理,通过实现ActionListener接口,开发者可以为按钮、菜单等组件添加事件监听器,实现用户与游戏的交互。例如,当玩家点击“开始游戏”按钮时,触发相应的游戏逻辑。 在游戏逻辑方面,Java ...

    模拟多进程并发

    9. **性能监控与调优**:开发者需要使用如JVisualVM等工具来监控线程状态,分析CPU和内存使用,以便优化并发程序的性能。 综上所述,这个“模拟多进程并发”的项目不仅涵盖了Java的并发编程,还涉及到了Swing的GUI...

    Java+Swing+Mysql实现酒店管理系统

    7. **多线程**:在处理并发请求时,如多个用户同时操作,系统可能需要利用Java的多线程特性,确保数据的一致性和系统的响应速度。 8. **安全性**:系统应具备一定的安全措施,例如数据加密、用户权限控制等,以防止...

    深入学习:JFC Swing

    同时,对Java多线程和并发编程的理解也是必不可少的,因为Swing是线程安全的,正确处理事件调度和UI更新至关重要。熟悉这些知识点将使你能够充分利用Swing构建出高效、用户友好的Java桌面应用。

    贪吃蛇java swing

    9. **多线程**: 虽然Swing本身已经处理了一些并发问题,但为了保证游戏流畅运行,可能需要使用多线程。例如,游戏循环在一个独立的线程中运行,避免阻塞用户界面。 10. **资源管理**: 游戏可能需要图片、音频等资源...

Global site tag (gtag.js) - Google Analytics