Swing JComponent类

vscode+keil嵌入式软件开发全流程 阅读详情

+java.lang.Object

  +java.awt.Component

    +java.awt.Container

      +javax.swing.JComponent


API中文解释:

  该类是除顶层容器外所有 Swing 组件的基类。要使用继承自 JComponent 的组件,必须将该组件置于一个根为顶层 Swing 容器的包含层次结构(containment hierarchy)中。顶层 Swing 容器(如 JFrame、JDialog 和 JApplet)是专门为其他 Swing 组件提供绘制自身场所的组件。

组件从功能上分可分为:
 1) 顶层容器:JFrame,JApplet,JDialog,JWindow共4个 
 2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar  
 3) 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane. 
 4) 基本控件:实现人际交互的组件,如Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。 
 5) 不可编辑信息的显示:向用户显示不可编辑信息的组件,例如JLabel, JProgressBar, ToolTip。 
 6) 可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如JColorChooser, JFileChoose, JFileChooser, Jtable, JtextArea

  JComponent类的特殊功能又分为: 

    1) 边框设置:使用setBorder()方法可以设置组件外围的边框,使用一个EmptyBorder对象能在组件周围留出空白。 

    2) 双缓冲区:使用双缓冲技术能改进频繁变化的组件的显示效果。与AWT组件不同,JComponent组件默认双缓冲区,不必自己重写代码。如果想关闭双缓冲区,可以在组件上施加setDoubleBuffered(false)方法。 

    3) 提示信息:使用setTooltipText()方法,为组件设置对用户有帮助的提示信息。

    4) 键盘导航:使用registerKeyboardAction( ) 方法,能使用户用键盘代替鼠标来驱动组件。JComponent类的子类AbstractButton还提供了便利的方法--用setMnemonic( )方法指明一个字符,通过这个字符和一个当前L&F的特殊修饰共同激活按钮动作。 

    5) 可插入L&F:每个Jcomponent对象有一个相应的ComponentUI对象,为它完成所有的绘画、事件处理、决定尺寸大小等工作。 ComponentUI对象依赖当前使用的L&F,用UIManager.setLookAndFeel( )方法可以设置需要的 

    6) 支持布局:通过设置组件最大、最小、推荐尺寸的方法和设置X、Y对齐参数值的方法能指定布局管理器的约束条件,为布局提供支持。

使用Swing的基本规则 


  与AWT组件不同,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下: 
  (1)把Swing组件放入一个顶层Swing容器的内容面板上 
  (2)避免使用非Swing的重量级组件。 

对JFrame添加组件有两种方式: 
  1) 用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)J 
  2) 建立一个Jpanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板: 
    Jpanel contentPane=new Jpanel( ); 
  ……//把其它组件添加到Jpanel中; 
    frame.setContentPane(contentPane); J 
    //把contentPane对象设置成为frame的内容面板 
7.2.3 各种容器面板和组件 

 根面板由一个玻璃面板(glassPane)、一个内容面板(contentPane)和一个可选择的菜单条(JMenuBar)组成,而内容面板和可选择的菜单条放在同一分层。玻璃面板是完全透明的,缺省值为不可见,为接收鼠标事件和在所有组件上绘图提供方便。 

 根面板提供的方法: 
  Container getContentPane(); //获得内容面板 
  setContentPane(Container); //设置内容面 
  JMenuBar getMenuBar( ); //活动菜单条 
  setMenuBar(JMenuBar); //设置菜单条 
  JLayeredPane getLayeredPane(); //获得分层面板 
 setLayeredPane(JLayeredPane); //设置分层面板 
 Component getGlassPane(); //获得玻璃面板 
  setGlassPane(Component); //设置玻璃面板 

7.2.3.2 分层面板(JLayeredPane) 

 Swing提供两种分层面板:JlayeredPane和JDesktopPane。 JDesktopPane是JLayeredPane的子类,专门为容纳内部框架(JInternalFrame)而设置。 
 向一个分层面板种添加组件,需要说明将其加入哪一层,指明组件在该层中的位置:add(Component c, Integer Layer, int position)。 

m7.2.3.3 面板(JPanel) 
  面板(JPanel)是一个轻量容器组件,用法与Panel相同,用于容纳界面元素,以便在布局管理器的设置下可容纳更多的组件,实现容器的嵌套。Jpanel, JscrollPane, JsplitPane, JinteralFrame都属于常用的中间容器,是轻量组件。Jpanel的缺省布局管理器是FlowLayout。 

java.lang.Object 

   +--java.awt.Component 

         +--java.awt.Container 

             +--javax.swing.JComponent 
                  | 
                  +--javax.swing.JPanel 

7.2.3.4 滚动窗口(JScrollPane) 


  JscrollPane是带滚动条的面板,主要是通过移动JViewport(视口)来实现的。JViewport是一种特殊的对象,用于查看基层组件,滚动条实际就是沿着组件移动视口,同时描绘出它在下面"看到"的内容。 

7.2.3.5 分隔板(JSplitPane) 

 java.lang.Object 
     | 
     +--java.awt.Component 
         | 
        +--java.awt.Container 
             | 
            +--javax.swing.JComponent 

                  +--javax.swing.JSplitPane 


 JSplitPane提供可拆分窗口,支持水平拆分和垂直拆分并带有滑动条。常用方法有: 
  addImpl(Component comp,Object constraints,int index)//增加指定的组件 
  setTopComponent(Component comp) //设置顶部的组件 
  setDividerSize(int newSize) //设置拆分的大小 
  setUI(SplitPaneUI ui) //设置外观和感觉 

7.2.3.6 选项板(JTabbedPane)] 

  JTabbedPane提供一组可供用户选择的带有标签或图标的开关键。常用方法: 
  add(String title,Component component) //增加一个带特定标签的组件 
o \{ y0S5^6|*n  addChangeListener(ChangeListener l) //选项板注册一个变化监听器 

7.2.3.7 工具栏(JToolBar) 


                工具栏在左上角 

     
               工具栏在右侧 
 JtoolBar是用于显示常用工具控件的容器。用户可以拖拽出一个独立的可显示工具控件的窗口。 
  常用方法有: 

       getComponentIndex(Component c) //返回一个组件的序号 
       getComponentAtIndex(int i) //得到一个指定序号的组件 
7.2.3.8 内部框架(JInternalFrame) 
 内部框架JInternalFrame就如同一个窗口在另一个窗口内部,其特点如下: 
 1) 必须把内部框架添加到一个容器中(通常为JDesktopPane),否则不显示; 
  2) 不必调用show()或setVisible()方法,内部框架随所在的容器一起显示; 
 3) 必须用setSize()或pack()或setBounds方法设置框架尺寸,否则尺寸为零,框架不能显示; 
 4) 可以用setLocation()或setBounds( ) 方法设置内部框架在容器中的位置,缺省值为0,0,即容器的左上角; 
 5) 象顶层JFrame一样,对内部框架添加组件也要加在它的内容面板上; 
 6) 在内部框架中建立对话框,不能使用JDialog作为顶层窗口,必须用JOptionPane或JInternalFrame; 
 7) 内部框架不能监听窗口事件,可以通过监听与窗口事件类似的内部框架(JInternalFrameEvent)处理内部框架窗口的操作。 

 JFrame frame=new JFrame("InternalFrameDemo"); //实例化窗口 
  JDesktopPane desktop=new JDesktopPane(); //实例化容器JDesktopPane 
  MyInternalFrame myframe=new MyInternalFrame(); //实例化内部窗口 
  desktop.add(myframe); //把内部窗口添加到容器中 
 myframe.setSelected(true); //内部面板是可选择的 
 frame.setContentPane(desktop); //把desktop设为frame的内容面板 

7.2.3.9 按钮(JButton) 

  按钮是一个常用组件,按钮可以带标签或图象。      

  java.lang.Object 

     +--java.awt.Component 
        | 
        +--java.awt.Container 
             | 
           +--javax.swing.JComponent 

                   +--javax.swing.AbstractButton 

                        +--javax.swing.JButton 

  常用的构造方法有: 
  JButton(Icon icon) //按钮上显示图标 
  JButton(String text) //按钮上显示字符 
 JButton(String text, Icon icon) //按钮上既显示图标又显示字符 

例7.2 
  public class ButtonDemo extends Jpanel implements ActionListener{ 
   JButton b1,b2,b3; 
    public ButtonDemo() { 
      super(); 
       ImageIcon leftButtonIcon=new ImageIcon("images/right.gif); 
                   //显示在左按钮上的图标 
      ImageIcon middleButtonIcon=new ImageIcon("images/middle.gif); 
                    //显示在中间按钮上的图标 
       ImageIcon middleButtonIcon=new ImageIcon("images/left.gif); 
                    //显示在右按钮上的图标 
       b1=new JButton("Disable middle button",leftButtonIcon); 
                   //按钮b1上同时显示文字和图标 
      b1.setVerticalTextPosition(AbstractButton.CENTER); 
              //按钮b1上的文字在垂直方向上是居中对齐JAVA中文站社区 
       b1.setHorizontalTextPosition(AbstractButton.LEFT); 
           //按钮b1上的文字在水平居方向上是居左对齐 
       b1.setMnemonic('d');  //设置按钮b1的替代的键盘 
       b1.setActionCommand("diaable"); 
复选框提供简单的"on/off"开关,旁边显示文本标签。 
7.2.3.11 单选框(JRadioButto 
单选框JRadioButton与AWT中的复选框组功能类似。 

7.2.3.12 选择框(JComboBox) 

JComboBox每次只能选择其中的一项,但是可编辑每项的内容,而且每项的内容可以是任意类,而不再局限于String。如图 

7.2.3.13 文件选择器(JFileChooser) 
JFileChooser内建有"打开","存储"两种对话框,还可以自己定义其他种类的对话框。 

7.2.3.14 标签(JLabel) 
提供可带图形的标签  

7.2.3.15 列表(List) 
适用于数量较多的选项以列表形式显示,里面的项目可以由任意类型对象构成。支持单选和多选。如图 

7.2.3.16 菜单(JMenu) 

JMenu与AWT的菜单Menu的不同之处是它可以通过setJMenuBar(menubar)将菜单放置到容器中的任意地方 

7.2.3.17 进程条(JProgressBar) 

进程条是提供一个直观的图形化的进度描述,从"空"到"满"的过程

 




劳特巴赫 Trace32 调试使用教程 详细介绍如何使用trace32进行调试 阅读详情

相关推荐

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1101

javaGUI学习40:Swing-JComponent类

1、JComponent类概览 JComponent扩展java. awt.Container,而 java. awt . Container又扩展java.awt . Component,因此,所有的Swing组件都是AWT容器。Component 和Container类本身提供了大量的功能,因此,JComponent继承了大量的功能。 因为JComponent为几乎所有的Swing组件提供下层构件,因此,它是一个很大的类,包括100多个public方法。JComponent类为它的扩展提供了下面的功能:

八十岁老将的博客 1919

5分钟搞定!用Cursor和.NET 9.0快速搭建串口通讯上位机(附VS Code插件配置)

本文分享了如何利用Cursor AI编程助手与.NET 9.0,在5分钟内快速构建一个功能完整的串口通讯上位机程序。通过自然语言描述需求,AI自动生成WinForms界面和核心代码,极大提升了硬件调试工具的定制开发效率。文章详细介绍了环境配置、AI协作编码、功能实现与调试的全过程。

weixin_28366353的博客 274

Java中jcomponent意思,Java图形化:JComponent组件

JComponent是一个和JPanel很相似的组件的容器,但又有区别。 JPanel不透明,所以在需要透明等应用场景的条件比较麻烦,使用JComponent比较方便。package swing;import javax.swing.*;import java.awt.*;/*** @author: 我的袜子都是洞* @description:* @path: tourJava-swing-Not...

weixin_34662372的博客 1578

open-web UI 实用指南

open-web UI 类似于chatgpt的界面,可以私有化模型本地部署,也可以用商业模型.本文只是用开源模型. 它以实现多模态AI聊天 , AI 翻译 , 语音转文本, 文本转语音, 文生图,代码助手,可谓利器。

szmars的博客 3万+

搭建云平台 1 Day 虚拟机安装(超详细)

点击OFF 那个按钮看看网络的地址和速度有没有显示,如果有 则到目前为止都是成功的。Host name随便起一个名字就行了**-_-**文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**,如果我们安装的VMware14就会默认为。因为我的是VMware16,所以默认。也是可以的,但是千万不要用。

2401_84009679的博客 563

使用Swing组件2-JComponent

JComponent类 官方API:https://docs.oracle.com/javase/tutorial/uiswing/components/jcomponent.html#complookapi 除顶级容器外,名称以“J”开头的所有Swing组件都从 JComponent该类开始。例如JPanel,JScrollPane,JButton,和JTable所有的继承JComponen...

二木成林 2589

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

第4章 JComponent类

 第4章 JComponent类  JComponent类是所有Swing轻量组件的基类,因此,我们单独用一章对它进行讨论。JComponent对Swing的意义就如同java.awt.Component对AWT的意义一样,它们都是它们各自框架组件的基类。  作为所有Swing轻量组件的基类,JComponent提供了大量的基本功能。要全面了解Swing,就必须知道JComponent类提

dongzhumao86的专栏 1万+

AgentScope深入分析-ReActAgent

ReActAgent 是 AgentScope 框架中最核心的智能体实现,它完美诠释了"推理-行动"(Reasoning-Acting)循环的精髓。本文将深入分析 ReActAgent 的类继承关系、核心执行流程,以及状态管理、钩子机制、实时介入等关键技术点。通过阅读本文,你会理解智能体如何与模型交互、如何执行工具、如何处理中断,以及这些机制背后的设计考量。模块化:通过组合不同的组件(模型、格式化器、工具集、记忆)来构建智能体透明性:所有关键流程都对开发者可见,可以精确控制可扩展性。

842

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

Java Swing之JPanel和JComponent

      如果需要创建一个能够进行绘制的组件,一般需要定义一个扩展JComponent的类,并覆盖其中的paintComponent方法。如下所示:class MyComponent extends JComponent { public void paintComponent(Graphics g) { 自己编写的绘制代码 } }其中paintComponent方...

样young的博客 5771

深入浅出SCSI子系统(一)Linux 内核中的 SCSI 架构

scsi系统

sinat_37817094的博客 6488

java swing:JComponent类

JComponent类学习 层次结构: +java.lang.Object +java.awt.Component +java.awt.Container +javax.swing.JComponent API中文解释:   该类是除顶层容器外所有 Swi...

1487

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

03-swing_JComponent类

JComponent 类 --  一, 概述     JComponent类 是所有轻量级组件的父类 二, JComponent的常用子类清单 -------------------------------------- JButton             按钮, 可以带图标 JTree               树 JComboBox           组合框 J

吴钦飞 1521

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

博为峰Java技术题 ——JavaSE Swing JComponent类Ⅰ

博为峰小博老师: JComponent类是所有轻量级组件的父类,为了能够更加清晰地了解JComponent类的主要子类,这里将以图的形式列出其子类,如下图所示: 当然,JComponent类的子类远远不止以上所列出的几个,这些只是一些常用的子类。从上面可以看出,所有继JComponent类的组件都属于基本组件类,它们只能依赖于中间容器而存在。 JComponent类的一些

bwf_erg的博客 572

《Java 2 图形设计卷Ⅱ- SWING》第4章 JComponent类

第4章 JComponent类   JComponent类是所有Swing轻量组件的基类,因此,我们单独用一章对它进行讨论。JComponent对Swing的意义就如同java.awt.Component对AWT的意义一样,它们都是它们各自框架组件的基类。  作为所有Swing轻量组件的基类,JComponent提供了大量的基本功能。要全面了解Swing,就必须知道JComponent类提供的功

dongzhumao86的专栏 718

Wireshark实战:MQTT协议抓包分析与排障全指南

网络协议分析是定位系统通信问题的关键手段,其中抓包工具能直观呈现数据链路交互过程。消息队列遥测传输协议(MQTT)作为物联网场景下最常用的轻量级通信协议,建立在发布/订阅模型之上,通过QoS等级、保活机制、遗嘱消息等设计,在低带宽、不稳定网络中实现可靠传输。理解其控制报文结构与交互流程,对嵌入式设备上云、移动端推送及工业数据采集均有重要意义。实际应用中,设备频繁掉线、消息丢失或重复、订阅失效等问题常源于协议细节配置不当,仅靠日志难以定位。借助Wireshark对MQTT流量进行抓包分析,可清晰观察CONNE

weixin_33991418的博客 454

博为峰Java技术文章 ——JavaSE Swing JComponent类II

博为峰小博老师: JComponent类的一些特性。其实它的特性非常多,其中有9大特性尤其显著。 Tool tips Tool tips就是工具提示功能,通过在setToolTipText方法中指定字符串,可以为一个组件提供一些帮助。当以标停留在组件上的时候,指定的字符串将出现在该组件的附近。用下面一个实例来说明它的用法,其代码如下: /**  * 这段代码主要介绍如何为组件添加工其提示

bwf_erg的博客 355

java中jComponet类_博为峰Java技术文章 ——JavaSE Swing JComponent类II

博为峰小博老师:JComponent类的一些特性。其实它的特性非常多,其中有9大特性尤其显著。Tool tipsTool tips就是工具提示功能,通过在setToolTipText方法中指定字符串,可以为一个组件提供一些帮助。当以标停留在组件上的时候,指定的字符串将出现在该组件的附近。用下面一个实例来说明它的用法,其代码如下:/***这段代码主要介绍如何为组件添加工其提示功能*/public...

weixin_39907311的博客 218

Swing框架的继承关系

---------------siwuxie095                   Java SE 8 (截止 2017/4/1 最新)在线 API 文档: http://docs.oracle.com/javase/8/docs/api/       Swing 框架是在 javax 包下,即 javax.swing    找到 javax.swing,

siwuxie095's blog 1665

Jcomponent

为什么80%的码农都做不了架构师?>>> ...

weixin_34245082的博客 512

第四章 JComponent类

JComponent类是所有Swing轻量组件的基类,因此,我们单独用一章对它进行讨论。JComponent对Swing的意义就如同java.awt.Component对AWT的意义一样,它们都是它们各自框架组件的基类。   作为所有Swing轻量组件的基类,JComponent提供了大量的基本功能。要全面了解Swing,就必须知道JComponent类提供的功能,还必须知道如何使用JCompo

雪雪的博客 1265

JComponent 特性

除了顶层容器以外,所有以“J”开头的 Swing 组件直接或间接地继承自 JComponent 类。例如,JPanel、 JScrollPane、JButton 和 JTable 都继承自 JComponent。但是 JFrame 和 JDialog、JApplet 不是继承自 JComponent,因为它们是作为顶层容器实现的。所以了解 JComponent 类有助于理解大部分 Swing

1648

swing学习 - JComponent学习

JComponent 类提供: 使用 Swing 架构的标准组件和自定义组件的基类。 可由程序员指定,或者由用户在运行时选择(可选)的“可插入外观”(L&F)。每个组件的外观都由 UI 委托 提供,UI 委托是一个继承自 ComponentUI 的对象。 全面的键击处理。 对工具提示的支持:光标停留在组件时所弹出的简短描述。 可访问性支持。JComponent 包含 Ac...

netliving的专栏 229
上一篇: oracle
下一篇: JAVA面试题
TuxedoLinux
博客等级 码龄9年 268粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值