Java GUI:AWT、Swing、UI绘制、双缓冲技术

java 图形化界面 框架Frame框架Frame可以作为Java的顶级窗口来使用。Frame是AWT中Window的一个子类,是带有标题和缩放角的窗口,是属于重量级组件。Frame可以设置自己的标题、边框、菜单、大小等等。默认的Frame实例化对象都是没有大小和不可见的,必须调用setSize( )来设置大小,调用setVisible(true)来设置该窗口为可见的。 阅读详情

GUI:Graphical User Interface(图形用户接口)

GLI:Command Line User Interface(命令行用户接口)就是常见的Dos命令行操作,需要记忆一些常见的命令,操作不直观

AWT

java.Awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属重量级控件。


1. Component类

Java图形界面的基本组成是组件,组件是可以图形化显示在屏幕上与用户进行交互的对象。抽象类Component是所有GUI组件的父类,它定义了GUI组件的基本特性,实现了GUI组件的基本功能。Java程序要显示的组件必须是抽象类Componet(组件)或MenuComponent(菜单组件)的子类。


2. Canavs

Canavs是代表屏幕上一块空白矩形区域,程序可以在里面绘图,可以捕获用户的操作,产生相应事件。是最基本最简单的GUI功能的部件。Canavs需要更新时自动调用repaint方法,repaint方法也可以在程序中调用,repaint方法调用update方法,update方法调用paint方法.

要定制一个GUI功能的布局类,可以继承Canavs,上面已经完成了GUI的基本功能,我们只需在上面增加件子类部件特有的外观和相关代码就可以了,这就需要覆盖其paint方法。


3. Checkbox

Checkbox可以用来建立多选按钮和单选按钮。创建多选按钮用Checkbox(String label, boolean state)使用指定标签创建一个复选框,并将它设置为指定状态。参数label是选框旁边的说明文字,参数是决定选框是否被选中。创建单选按钮用Checkbox(String label, boolean state)使用指定标签创建一个复选框,并将它设置为指定状态。label - 此复选框的字符串标签,如果没有标签,则该参数为 null。state - 此复选框的初始状态。group - 此复选框的复选框组,如果没有这样的复选框组,则该参数为 null。


4. 菜单

MenuBar(菜单条),Menu(菜单),MenuItem(菜单项)。Menu本身是MenuItem的子类,一个Menu对象也可以作为一个菜单项添加到另外一个Menu对象上,这就是子菜单。

菜单制作过程:先生成MenuBar对象,再生成Menu对象,最后产生MenuItem对象,将MenuItem添加到Menu上后,再将Menu添加到MenuBar上,最后将MenuBar挂在Frame上。


5. Container类

组件不能独立的显示出来,必须放在一定的容器中才可以显示出来。Container是所有容器的父类。它又是Component的子类,所以容器也可以作为组件放在其他容器中。容器类可以用add()方法添加组件。

Container子类有Window和Panel。Window类没有边框和菜单条,其子类有Frame,Dialog,默认是用BorderLayout布局的。Panel子类有,默认用FlowLayout布局。


6. Dialog

Dialog一般是个临时的窗口,用于显示提示信息,或接收用户输入。对话框不能独立存在,必须有个上级窗口,可以是Frame框架。对话框有两种:模态对话框显示时,用户不能操作其他窗口,做到这个对话框被关闭。非模态对话框显示时,用户还可以操作其他窗口。对话框与框架Frame比较相似,可以添加组件在上面。


7. Panel类

面板Panel可以做容器加其他组件,但不能独立存在,需放在Window等其他容器中。Panel是一个空白容器类,提供容纳组件的空间,通常用于集成其他若干组件,使这些组件形成一个有机整体,再加到别的容器上。面板的设置布局管理器的SetLayout和添加组件的add方法最常用。


编程技巧:

未来构造一个复杂的布局,可以创建一个或多个面板,并定义它们各自的布局管理器,然后按照不同的布局组件加入到这些面板,最后按照一个总的布局来安排这些面板。程序的界面是非常重要的,如果可以增加特殊的面板及代码来改善程序的外观,应多努力。

界面中,一般按钮放在一行,并居中。一般将OK(或确定)按钮放在左边,取消(Cancel)按钮放在右边。如果菜单出现。

若程序中有菜单,则至少包含文件、编辑、帮助等子菜单,文件子菜单至少包含退出(Exit)选择,布局子菜单至少包括剪切(Cut)拷贝(Copy)和粘贴(Pate)等选项,帮助子菜单(Help)至少包含关于(About)选项等。


8. ScrollPane类

实现用于单个子组件的自动水平和/或垂直滚动的容器类。可以在小区域内看较多的内容。它的对象不能单独使用,必须放在其他容器中使用。

它本身是个容器,但只可以放一个组件,无布局管理器,要在上面放多个组件,只能在panel放多个组件,在把panel放在ScrollPane上

Container为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来


9.布局管理器:容器中的组件的排放方式,就是布局

FlowLayout流式布局管理器:从左到右的顺序,Panel默认的布局管理器

BorderLayout边界布局管理器:东南西北中,Frame默认的布局管理器

GridLayout网格布局管理器:规则的矩阵

CardLayout卡片布局管理器:选项卡

GridBagLayout网格包布局管理器:非规则的矩阵

Frame f = new Frame("myframe");
f.setSize(500,500);//设置窗体大小
f.setLocation(1,1);//设置窗体在屏幕的位置
f.setVisible(true);//让窗体显示
Button b = new Button("haha");//创建一个组件---按钮
f.add(b);//将按钮组件添加到窗体中
f.setLayout(new FlowLayout());//设置窗体的布局

给窗体事件源添加一个窗体监听,监听一系列引发窗体事件的动作

将一个监听器对象作为参数传人

f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
       System.exit(0);
    }
});

10.事件监听机制组成:

事件源(组件)  事件(Event) 监听器(Listener)  事件处理(引发事件后处理方式)

事件监听机制:

1) 确定事件源

2) 确定该事件源上可以注册的监听器

3) 明确要处理的监听器中的动作

事件监听机制中,事件源就是awt中的已有组件,事件源对应的能产生的事件对象也是固定的,而且,监听器也是固定的。在事件监听机制中,唯一可以自定义的就是事件处理方式,其实就是该引发事件的动作对应的函数的内容编写。

按钮上不能添加窗体监听


11.GUI组件上的图形操作:

1)绘图原理:

如果要在GUI组件上画图、打字、显示图像,组件本身没有这些方法,但通过一个getGraphics方法,该方法返回一个包含有该组件的屏幕显示外观信息的Graphics方法类的对象,Graphics中提供了组件显示表面绘画图形,打印文字,显示图像等操作方法。

Graphics类用于在一个可视组件内绘图。一个Graphics对象包含了绘图所必需包含的信息,其中包括坐标、色彩、字体和剪贴板区。绘图在一个二维整数坐标系中进行,该坐标的原点在组件的左上角,X轴在水平方向从左往右延伸,y轴垂直向下增长。Graphics对象不能被初始化,只可以从现有图形对象或使用Component的getGraphics方法得到。Graphics包含了大量方法,可查阅API文档了解其功能与用法。

Graphiucs是继承Object的抽象类,不能直接实例化,可以通过Component的getGraphics方法为组件创建一个图形上下文。如果组件当前是不可显示的,则此方法返回 null。所以使用前调用此方法画图的组件必须是可见的,也就必须调用的组件的setVisible(boolean b),参数设为true。把得到的Graphiucs对象赋值给Graphicus类型的变量。再调用Grahpicus中的构造绘图方法。

图形窗口显示打印的文字的语句不是System.out.println()语句,只有使用Graphics.drawString()语句才可以打印字符文本。并且这个方法的坐标是指文本块显示时的左下角位置。若用println方法打印的内容会在命令行或开发工具控制台窗口中显示。


2)组件重绘

用Graphics画的图形在刷新和窗口大小改变后,里面的内容就会丢失。要让组件里画的内容一直保持,就要在窗体改变,组件重新绘制后,将原来的图形重新画上去,让用户感觉里面的内容没有改变。

AWT线程在窗口初始显示(setVisible方法被执行)和重新绘制组件后,会立即调用组件的paint方法,重绘代码也就在paint方法中写。

paint方法的定义:public void paint(Graphics g)

要想paint中的代码被执行,需要用Component.repaint方法,Component.repaint方法调用Component.update方法,Component.update方法先清除组件表明的内容再调用Component.paint方法。所以窗口开始显示时AWT线程调用paint方法,之后窗口大小改变或最小最大化,或被其他窗口遮蔽又显现的时候,组件会重绘,会通过update方法调用paint方法。

paint方法已经在Component类中定义,所以要修改其代码,必须继承Component类或其子类,之后覆盖paint方法,在其中编写重绘图形程序代码,并将原先创建的子类类对象由这个类创建。


3)图像操作

Graphics类中有很多处理图像的方法,相关功能可以查看API。

通过public abstract boolean drawImage(Image img,int x,int y,Color bgcolor,ImageObserver observer) 方法可以在组件上显示图像。图像的左上角位于此图形上下文坐标空间的 (x, y)。img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。所以要保证img不为null下调用,若保证不了,要设定条件语句,在img不为空时才执行。x - x 坐标。y - y 坐标。bgcolor - 在图像非透明部分下绘制的背景色。observer - 当转换了更多图像时要通知的对象。若要了解图像创建的进度信息,需要编写一个实现了ImageObserver接口的类,并将其对象传给drawIamge方法。若不关心,可以传递显示图像的那个组件对象,因为Component类实现了ImageObserver接口。

如何获取硬盘的一个图像显示在组件上:

在Java中,有关Image图像类,public abstract class Imageextends Object抽象类 Image 是表示图形图像的所有类的超类。不能直接创建实例对象。必须以特定于平台的方式获取图像。

在AWT包中有关抽象类Toolkit,此类是所有 Abstract Window Toolkit 实际实现的抽象超类。Toolkit 的子类被用于将各种组件绑定到特定本机工具包实现。大多数应用程序不应直接调用该类中的任何方法。Toolkit 定义的方法是一种“胶水”,将 java.awt 包中与平台无关的类与 java.awt.peer 中的对应物连接起来。Toolkit 定义的一些方法能直接查询本机操作系统。Tookit中的方法getImage(URL url)可以返回一幅图像,该图像从指定 URL 获取像素数据。

要得到图像,Toolkit也不能创建实例对象,所以寻到Component中的getTookit方法来获取此组件的工具包,返回Tookit对象,返回的对象调用getImage方法得到Image对象。若一个名为test的图片存在C盘,这最后框架f得到这个图像的语句为:Image img=f.getToolkit().getImage(“ c:\\tes.gif ”); 把f传给drawImage就可以显示图像了。


注意:

由于drawImage是Graphics的方法,而Graphics是抽象类,其对象通常由组件的getGraphics方法得到,而这个方法必须是调用它的组件是可以见才不为空。所以一定要让相关组件可见,drawImage的代码在设置组件可见之后。否则会产生空指针异常。

另外,当窗口初始或组件重绘时会调用paint方法,会擦掉先前画的内容。而drewIamge方法写在main方法中的话,无法确定AWT线程何时启动,可能后于main方法中的代码启动,这样画出的内容就会被擦掉。所以要把画图的drawImage方法写在paint方法中,paint方法是Component的方法,所以要继承Component或其子类,覆盖paint方法才能更改。

还有就是,getImage若没有被执行,drawImage参数找不到图像,也会空指针异常,所以一定要保证调用drawIamge前执行了getImage。drawImage放在paint方法中,paint方法在组件显示前是不会调用的,所以只要把getImage方法写在设置组件可见的setVisible前就可以了。


4)双缓冲技术

组件重绘在图形很多很复杂时,要重绘的就非常多,写得代码也很繁琐。Java的Component类提供了一个createImage方法,可以在内存中创建一个Image对象,当我们在组件上绘图时,这个Image对象上执行完全相同的绘制,当组件重画时,只需将内存中的这个Image对象在组件上画出,不管组件上原来有多少图形,这就是双缓冲技术。

方法定义:public Image createImage(int width,int height)

创建一幅用于双缓冲的、可在屏幕外绘制的图像。width - 指定的宽度,height - 指定的高度。一幅屏幕外可绘制的图像,可用于双缓冲。如果组件是不可显示的,则返回值可能为 null。所以部件能显示出后才可以调用。此方法得到的Image对象调用getGraphics得到的Graphics对象绘制窗口中Graphics对象做的绘制的所有图形,之后在paint方法用drawImage方法中绘制createImage绘制的图像。

使用步骤(变量名可以改):

定义一个Dimension 变量dim,调用其getSize方法获得组件大小(Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。)

定义一个Image变量img,把dim的width、height传给createImage方法,将createImage方法执行结果赋值img

定义一个绘图Graphics变量gra,用img调用getGraphics,把结果传给gra。

在监听器的相关方法中用gra执行组件中设的Graphics变量画图操作的所有代码(组件中画什么,gra就画什么),画出一模一样的图像自动保存的内存中,也就是图像img。

在paint中用组件中的Graphics变量调用drawImage方法,绘制出gra画的图像img。就得到组件重绘的效果了。


Swing

Swing为GUI提供了更完整的组件和功能。Swing组件放在javax.swing包中,都是Jcomkponent的之类。增强的组件在Swing中的名字都是在AWT组件名字前加上一个字母“J”,如Swing中按钮为JButton。

JFC(java Foundation Class),集合了Swing组件和其他能简化开发的API类。


1. JRootPane

是awt.Container和JComponent的子类,该轻量级容器由 JFrame、JDialog、JWindow、JApplet 和 JInternalFrame 在后台使用。

“重量级”组件是指委托给主机系统上的同位体或本地组件的组件,一般用较暗的、更重的框来显示。

四个重量级 JFC/Swing 容器是:JFrame、JDialog、JWindow 和 JApplet。另外还有一个轻量级容器 JInternalFrame。所有这五个 JFC/Swing 容器都实现 RootPaneContainer 接口,并且它们都将其操作委托给 JRootPane(顶端显示有一个小 "handle")。即为了便于使用 JFrame、JDialog、JWindow、JApplet 和 JInternalFrame,默认情况下,将 add、remove 和 setLayout 方法的所有调用转发到 contentPane。调用他们继承的getContentPane()方法可以获得自己的内部块contentpane,即得到JRootPane。用这个对象做委托给它的相关操作(比如用add方法加组件和设置布局管理器等)。


2.JFrame

Swing中的JFrame是Frame的子类,功能相当,但JFrame上只能有一个唯一的组件,就是JRootPane。

添加组件: 应用程序不能像Frame那样直接用JFrame对象调用add方法添加组件和和设置布局管理器。必须用JFrame的后台用的JRootPane对象增加组件和设置布局管理器:

JFrame对象可以调用JFreme.getContentPane()方法可以获得JFrame中内置的JRootPane对象。

用得到的JRootPane对象调用add方法添加组件和设置布局管理器。

关闭窗口:JFrame的窗口即使点了关闭按钮,只是自动隐藏JFrame窗口,实际还在内存中运行。所以用如下方法让点击关闭按钮时真正关闭窗口:

在windowClosing事件处理方法中,调用这个窗口对象的dispose方法类关闭。

调用setDefaultCloseOperation方法:将JFrame.EXIT_ON_CLOSE它作为参数传给这个方法。EXIT_ON_CLOSE是JFrame定义的常量,表示使用 System exit 方法退出应用程序。


3.JScrollPane

Swing中的滚动条窗口JScrollPane同样与AWT中ScrollPane功能相当,让有限区域可以阅读或输入更多内容。只是用法有别。

用法:

JScrollPane可以生成垂直和水平的滚动条,它由JScrollBar(滚动条)和JViewport(用于查看底层信息的“视口”或“观察孔”,滚动条中间的视图区域)组成。

用JScrollPane.getViewport方法可以返回视图区域的JViewport对象。

这个对象可以调用JViewport.setView方法添加文本区域等要显示的内容组件。

最后将JScrollPane作为组件条件到相应的容器中。


4.对话框 

对话框用于提示用户发生了什么事情,或要求用户确认或取消某个动作。

Swing中可以使用JDialog类和JOptionPane类创建对话框。

JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。其中有很多showXxxDialog的静态方法来参数标准的对话框。可以直接用类名调用,Xxx为各种名称。

   


5.BoxLayout布局管理器

这是Swing中新增的布局管理器,可以允许许多组件全部垂直摆放或全部水平摆放。嵌套组合多个使用BoxLayout布局管理器的Panel可以实现GridBagLayout的功能。



1.Swing的概述(JFrame和JDialog) Swing是Java的图形用户界面(GUI)工具包,旨在提供丰富且可定制的界面组件,用于开发跨平台的桌面应用程序。它以抽象的窗口工具包(AWT)为基础,使跨平台应用程序可以使用可拔插的外观风格。 阅读详情

相关推荐

15个Java渲染优化秘籍:从“卡成PPT“到“丝滑如丝“的蜕变!

Java渲染性能优化摘要(150字) 本文提供15个Java渲染性能优化技巧,涵盖Swing/AWT等场景:1)避免在EDT线程执行耗时操作,改用SwingWorker异步处理;2)启用双缓冲减少重绘闪烁;3)缓存Font/Color对象降低GC压力;4)使用drawImage替代逐像素绘制;5)减少组件数量改用自定义绘制;6)选用高效布局管理器;7)避免在paint方法内创建对象;8)利用BufferedImage离屏渲染;9)优化字体渲染设置。通过线程分离、缓存复用、算法优化等手段,显著提升Java界面

java专栏 1578

Java用JFrame、JPanel、Graphics绘图案例讲解

本文将介绍Java绘图工具的使用,通过具体示例,演示通过Java的Graphics类在JFrame中的JPanel上绘制图形的步骤和方法。 JFrame类,是存放组件的容器。相当于相框。 JPanel类,是面板容器类。相当于画板。 Graphics类,是Java用绘图类,相当于画笔。

五道口 4万+

Java GUI绘图实战:基于AWT与Swing的画板程序设计

真正意义上的动态绘图,始于对JPanel和的深刻理解。这个机制不仅是Swing渲染的基础,更是构建交互式应用的关键。

weixin_42524864的博客 831

JAVA-UI编程之-AWT界面编程

概要 JAVA中,界面编程从AWT,SWING,SWT,还有为富互联网(RIA)应用的JavaFX。有各自的存在道题。 AWT,最接近系统底层,比较受限系统,目前基本很少直接应用企业开发。但是更因为他接近系统层,性能上相对较高。特别是嵌入式开发的时候。也有一定的采用价值。 SWING,是在AWT的基础上,封装了更多,更适合跨平台的UI类库。目前企业应用开发比较多。因为是JDK集成的。开发的应...

西湾行者僧 6796

Java双缓冲绘图技术实现详解

本文还有配套的精品资源,点击获取 简介:Java中的双缓冲技术是优化GUI图形渲染的关键,通过使用后台缓冲区来提高画图性能,避免屏幕闪烁和视觉不连续。开发者通过重写 paintComponent 方法和 Graphics2D 对象的使用,实现了一个提供平滑无闪烁画图体验的应用程序。本案例展示了双缓冲在Java中的实现原理与实践,包括后台绘图操作及...

weixin_42153793的博客 1262

Java GUI绘图程序开发实践

GUI编程通常涉及以下几个关键概念:组件(Components):GUI中的基本构建块,如按钮(Button)、文本框(TextField)、标签(Label)等。容器(Containers):可以包含其他组件的组件,例如窗口(JFrame)和面板(JPanel)。布局管理器(Layout Managers):用于控制容器内组件位置和大小的策略,如边框布局(BorderLayout)、网格布局(GridLayout)等。

weixin_42174098的博客 1004

细说Java GUI:AWT,SWT,Swing

历史 Internet上有许多围绕这一争论的故事。你可能已经听说过它们中的大多数了,其中之一有助于让你理清头绪,让我们就从这里开始,Amy Fowler是Swing阵营的一个倡导者。 回到上个世纪90年代,曾几何时有3家庞大的Smalltalk公司——IBM、Parc-Place和 Digitalk。在90年代初期3家公司的市场份额大致相等,生活是美好的。Parc-Place采用仿窗口部件(emulated widgets)的设计(即Swing的设计),IB...

顺其自然~专栏 2258

基于Java GUI的飞机大战游戏实战项目

本文还有配套的精品资源,点击获取 简介:《飞机大战》是一款利用Java图形用户界面(GUI)技术开发的简单窗体游戏,重点在于帮助玩家深入理解Java编程及其图形绘制、事件处理和性能优化机制。在该游戏中,玩家通过键盘操作飞机,进行战斗体验,同时学习Java编程核心概念。它使用Swing或AWT库创建窗口和游戏元素,并通过Graphics类来绘制游戏图形。游戏利用重绘机制和双缓...

weixin_42311427的博客 427

Java GUI简介及AWT基础学习

JavaGUI简介以及AWT的详细学习,包括Frame、Panel、事件监听...

NightFa1l的博客 372

基于Transformer和图卷积网络的时空人体运动预测网络

本文主要介绍了基于Transformer和图卷积网络的时空人体运动预测网络。首先,文章详细阐述了Transformer模型的原理和优点,指出其通过自注意力机制实现序列数据的建模和处理,能够捕捉长距离依赖关系。然后,文章介绍了图卷积网络的基本概念和应用场景,强调其通过邻居节点信息聚合实现空间特征的提取和融合。接着,文章详细设计了时空人体运动预测网络的总体架构,包括基于Transformer的时间特征提取模块、基于图卷积的空间特征融合模块以及时空特征联合预测模块。

babyai996的博客 1481

SAP 更改物料基本计量单位

创建订单单位后,新创建的采购申请、采购合同、采购信息记录均会使用新的订单单位

matinal 當冬夜漸暖 。公众号:matinal 6162

Java高级教程3_图形用户界面GUI

张老师的Java高级教程中图形用户界面GUI对应的笔记 网络编辑器还要重新排版,提供原始文件下载,先看个概貌   Java高级3_图形用户界面GUI AWT的基础知识 GUI:Graphical User Interface图形用户界面。JDK中提供了AWT和Swing两个包用于GUI程序设

优快云博客 3696

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

Java | AWT Swing

AWT是Java最早出现的图形界面,但很快就被Swing所取代。 Swing才是一种真正的图形开发。 AWT在不同平台所出现的界面可能有所不同:因为每个OS都有自己的UI组件库,java调用不同系统的UI。 注意AWT为重量级组件,相当消耗资源,且不同系统的组件可能不同。因为这个问题使得AWT开发的软件难以作到跨平台。更为要命的是:不同OS的组件库都存在BUG。必须多种平台进行测

菜鸟程序猿的博客 1007

华为[ENSP]—— 实验二、三层交换和ARP的工作原理

华为[ENSP]三层交换和ARP的工作原理

weixin_62594100的博客 6411

便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理

便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助

weixin_43518680的博客 633

Java学习day083 Swing用户界面组件(八:GUI程序排错)(调试技巧、让AWT机器人完成工作)

使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。 day082 Swing用户界面组件(七:GUI程序排错)(调试技巧、让AWT机器人完成工作) ...

Zzehao的博客 631

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6254

[转载]Painting in AWT and Swing

Good Painting Code Is the Key to App PerformanceBy Amy Fowler 在图形系统中, 窗口工具包(windowing toolkit)通常提供一个框架以便相对容易地创建一个图形用户接口(GUI),在正确的时间、正确的屏幕位置显示一个正确的图像位。 AWT (abstract windowing toolkit,抽象窗口工具包)...

dianbielv0402的博客 211

自抗扰控制(ADRC)理论与工程实践:6.1 离散时间ADRC的推导

本文系统阐述了自抗扰控制(ADRC)的离散化方法,重点对比了前向欧拉法和基于零阶保持器(ZOH)的精确离散化两种方法。前向欧拉法计算简单但精度较低,稳定性受采样周期约束;ZOH法精度高但对大采样周期更鲁棒。文章详细推导了跟踪微分器、扩张状态观测器和控制律的离散形式,分析了采样周期选择的关键因素,为ADRC的数字实现提供了理论指导。

技术工作者 197

【OpenClaw从入门到精通】第63篇:A股智能分析实战——用OpenClaw搭建个人量化研究助手(2026实测版)

2026年,OpenClaw已成为量化投研圈的现象级工具,八家头部券商密集发布专题研报力证其价值。传统量化投研面临技术门槛高、重复劳动多、策略迭代慢、非结构化数据处理弱四大痛点,而OpenClaw通过“AI智能体+金融Skill+量化API”的融合,实现了从数据获取、策略生成、回测验证到持仓监控的全流程自动化。本文基于2026年最新实测经验,完整呈现个人量化研究助手搭建:从阿里云部署、阿里云百炼API配置(含解析失败解决方案)、Tushare数据源接入,到PB-ROE价值选股、研报复现、自动化回测、持仓监控

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1059

Painting in AWT and Swing

original artical reference Good Painting Code Is the Key to App PerformanceBy Amy FowlerIn a graphical system, a windowing toolkit is usually responsible for providing a framework to make it

Java技术点滴 1047

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java GUI编程:从入门到精通

GUI(Graphical User Interface)图形用户界面,与CLI(命令行界面)的主要区别在于其可视化的操作界面和事件驱动的编程模型。GUI提供了丰富的组件库支持,能够为用户带来更好的体验。Java GUI开发的两大体系是AWT(Abstract Window Toolkit)和Swing。AWT基于本地系统组件,属于重量级组件,功能相对简单。而Swing是AWT的增强版,采用纯Java实现,属于轻量级组件,拥有更丰富的组件库和更好的跨平台性。

m0_75107803的博客 1564

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Swing用户界面设计

7.1 Swing简介7.1.1 简介  第五讲中我们学习了AWT,AWT是Swing的基础。Swing的产生主要原因就是AWT不能满足图形化用户界面发展的需要。AWT设计的初衷是支持开发小应用程序的简单用户界面。例如AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚至不包括弹出式菜单或滚动窗格等基本元素。  此外AWT还存在着严重的缺陷,人们使AWT适应基于继承的、具有很大伸

hebixixixi的专栏 756

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

第八讲 GUI/图形用户界面

AWT的基础知识GUI全称Graphical User Interface即图形用户界面JDK中提供了AWT和Swing两个包,用于GUI程序的设计和开发GUI组件可以分为两大类:基本组件和容器,分别是java.awt.Component和java.awt.Container的直接或间接子类程序的GUI部分由AWT线程管理事件处理机制事件:用户对组件的一个操作,称之为事件。事件源:发生事件的组件就是事件源。事件处理器:某个java类中的负责处理事件的成员方法。事件分类按产生事件的物理操作和GUI组件的表现效

guoli_2011的专栏 713

JavaJFrame类源码剖析:窗口管理与组件绘制的核心技术

MyBatis SQL 解析源码 OGNL 表达式求值与动态 SQL

Mmhhdk的博客 687
上一篇: Java Socket网络编程
下一篇: Java 字符流的使用
梦中的梦
博客等级 码龄18年 16粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值