通常,当我创建一个类,例如Customer时,我给它一些数据字段,即public int IdNumber;和一些方法,即public String getName(){…}.但这就是它.我不能超越它并开始玩图形 – 我只能操纵和组织数据,只要类允许.

我无法理解JFrame中发生的事情.谁写了JFrame类,他们是怎么写一个可以让一个盒子出现在屏幕上的类?内部会发生什么导致这种情况发生?无论如何都要模仿它吗?

同样的问题适用于所有基于图形的Java类.我真的很想知道它是如何工作的,因为每次我使用其中一个都会困扰我.

解决方法

Java以awt(Abstract Windowing Toolkit)开始,后来引入了swing.

在AWT中,平台事件处理循环被挂钩,事件被打包在自己的java类中,一个(非并行)事件处理队列/线程一个接一个地处理它们. Swing继承了这一点.

在AWT中,每个GUI组件(如单选按钮或菜单项)都具有本机代码“对等”控件,即平台提供的组件.有一组并行的java类和它们的C对应物.特别有趣的是java Graphics类,它允许自定义绘制线条,矩形等.据推测,它在Windows下与CDC(设备上下文)对等.

在Swing中,大多数平台组件都是模拟的,即自己重新创建:绘图,鼠标处理等.所以原生部分更简单,比如可能是带有自定义绘图的CWnd(Window组件).

Swing可以实现更一致且功能更丰富的功能.您可以想象在AWT单选按钮上设置背景颜色可能是不可能的,或者在标签或工具提示上使用HTML. Swing也可以做皮肤,主题,LookAndFeels.系统的外观和感觉是对平台组件的近似模仿.特别是Swing组件的重量更轻,因为并非每个组件都有一个本地对等控件可以在C中处理.

现在SWT是IBM在eclipse中为AWT重新加载实现的后来的一项计划.不像Swing那样可定制,但打算靠近平台.

您应该忘记使用AWT组件,如果没有为eclipse RCP编程也可以使用SWT.

所以:鼠标点击,重绘请求等全局平台事件被转换为Java事件.有一个JFrame,JPanels,JScrollPanes,JComponents的容器层次结构.将事件分派给处理组件,例如调用paintComponent:

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g; // A later introduced class that can do more.
    g2.draw...
}

有了JavaFX,就会出现一个新的播放器,即恕​​我直言,尚未完全成熟,但可用于非生产代码.它可以实现效果/动画,旋转,变换,光.所以2D-4D渲染,基于类似平台渲染.它也是基于属性的,因此复选框不一定会绑定到布尔值,而是一个布尔属性,用于观察和通知更改.我还需要一些实践经验,用它构思一个最佳的架构.

java – JFrame如何工作?在内心深处,它如何绘制东西?的更多相关文章

  1. Java Swing实现画板的简单操作

    这篇文章主要介绍了Java Swing实现画板的简单操作,修改颜色,更改图形,清除,任务栏按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. Java Swing实现扫雷源码

    这篇文章主要为大家详细介绍了Java Swing实现扫雷源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Java+swing实现抖音上的表白程序详解

    这篇文章主要为大家详细介绍了如何利用Java swing实现抖音上的表白程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

  4. java swing GUI窗口美化方式

    这篇文章主要介绍了java swing GUI窗口美化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  5. IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧

  6. Java语言中Swing组件编程详解

    这篇文章主要为大家介绍了Java语言中Swing组件编程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  7. Java swing实现应用程序对数据库的访问问题

    这篇文章主要介绍了Java swing实现应用程序对数据库的访问,本次实验需要做一个GUI界面和一个连接查询功能,在论坛上借鉴了其他大佬获取网站内容的部分代码,然后自己做了一个及其简陋的swing界面,算是把这个实验完成了,需要的朋友可以参考下

  8. 在Java11中使用JscrollPane和JLayer时,Synthetica外观会引发类转换异常

    代码示例堆栈跟踪错误它在Java8中运行良好

  9. Windows 7外观上的Java Swing渲染错误?

    我应该报告吗?如果是这样,在哪里?谢谢!

  10. Windows 7触摸屏Java Swing =延迟的鼠标事件

    )是的,我试图简单地关闭触摸按住右键手势.不幸的是,这样做只是禁止绘制一个圆圈,指示你手指周围的右键手势和随后的右键点击.它不会消除潜在的问题:延迟鼠标下降事件长达六秒钟.我的问题:有没有办法:>理想情况下,向Windows指出我的应用程序是一个可触摸就绪的应用程序,因此它会立即发送事件?我可以看到,内置的软键盘正常工作,似乎.我只是希望我的Java应用程序也这样做.>完全禁用计算机上的延迟,但仍提供基本的触摸功能?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部