深入浅出Java Swing组件与UI设计

4星 · 超过85%的资源 需积分: 32 26 下载量 115 浏览量 更新于2024-10-13 收藏 357KB DOC 举报
"Java-AWT/Swing教程是一个适合初学者的教程,主要讲解了Swing的基本组件使用和创建用户界面的方法。Swing是Java中用于构建图形用户界面(GUI)的库,它是AWT(Abstract Window Toolkit)的扩展,旨在解决AWT的局限性,如缺乏某些功能和平台依赖性问题。Swing组件是轻量级的,由纯Java编写,可以在不同平台上提供一致的体验,并允许用户选择不同的外观风格,如Metal、Motif和Windows。Swing采用了MVC设计模式,确保了模型、视图和控制器的分离。在Swing的类层次结构中,组件分为顶层容器(如JFrame、JApplet、JDialog和JWindow)和轻量级组件,它们都是AWT Container类的子类。" Swing是Java GUI编程的重要组成部分,它提供了一系列丰富的组件和工具,使得开发者可以创建功能强大的、交互式的图形用户界面。Swing组件包括按钮(JButton)、文本框(JTextField)、列表(JList)、表格(JTable)等,这些组件在设计上考虑了可扩展性和可定制性。 在Swing中,所有的组件都继承自Java.awt.Component类,而Container类进一步扩展了Component,包含了添加、排列组件的能力。Swing的顶级容器,如JFrame,是应用程序的主要窗口,可以包含其他组件。JApplet则用于Web浏览器中的交互式内容。JDialog用于创建模态和非模态对话框,而JWindow则可以创建无边框的浮动窗口。 Swing的轻量级特性意味着它的组件不依赖于底层操作系统,这使得Swing应用程序能在任何支持Java的平台上运行,而无需关心平台特定的细节。Swing的可插入外观感觉(PL&F)机制允许用户在运行时改变应用程序的视觉样式,以匹配不同的操作系统或个人喜好。 Swing的MVC设计模式强调了组件的逻辑和显示分离。模型存储数据和业务逻辑,视图负责显示数据,而控制器处理用户的输入事件。这种分离使得代码更易于维护和扩展。 除了基本组件,Swing还包括高级组件,如树形视图(JTree)和滚动面板(JScrollPane),以及布局管理器(如FlowLayout、BorderLayout和GridLayout)来帮助组织和排列组件。此外,Swing还提供了Action类,可以封装按钮和其他组件的行为,使得代码更简洁。 Java-AWT/Swing教程会引导学习者掌握如何使用Swing来创建美观、功能丰富的GUI应用,理解Swing组件的使用、布局管理以及事件处理,从而提升Java GUI开发技能。
2023-06-01 上传

Exception in thread "AWT-EventQueue-0" java.util.MissingFormatArgumentException: Format specifier '%s' at java.base/java.util.Formatter.format(Formatter.java:2780) at java.base/java.util.Formatter.format(Formatter.java:2717) at java.base/java.lang.String.format(String.java:4155) at Manager.toString(ManagerGUIDemo.java:30) at ManagerGUIDemo.actionPerformed(ManagerGUIDemo.java:100) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398) at java.desktop/java.awt.Component.processEvent(Component.java:6385) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

2023-06-01 上传

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because "conn" is null at lll.dao.TypeDao.selectTypes(TypeDao.java:28) at lll.tt$2.actionPerformed(tt.java:94) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

2023-06-12 上传