热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javagui组件_JavaGUI基础组件

1、JLabel标签构造函数:JLabel()JLabel(Stringtext)JLabel(Stringtext,intalign)第二个参数设置文本的对齐方式&

1、JLabel  标签

构造函数:

JLabel()

JLabel(String text)

JLabel(String text,int align)     //第二个参数设置文本的对齐方式,常量,比如SwingConstants.LEFT/RIGHT。

JLabel(Icon image)  //显示图片

JLabel(Icon image,int align)

JLabel(String text,Icon image,int align)    //同时显示文字、图片

常用方法:

set/getText()

set/getIcon()

2、JButton  按钮

构造函数:

JButton()

JButton(String text)

JButton(Icon image)

JButton(String text,Icon image)

3、JRadioButton  单选按钮

构造函数:

JRadioButton()

JRadioButton(String text)   //文本

JRadioButton(String text,boolean selected)   //第二个参数指定是否默认选中

JRadioButton(Icon image)  //图片

JRadioButton(Icon image,boolean selected)

JRadioButton(String text,Icon image)   //文本+图片

JRadioButton(String text,Icon image,boolean selected)

常用方法:

getText()

isSelected()

setSelected(boolean selected)    //设置是否选中

setSelectedIcon(Icon image)   //设置选中时的图标

4、JCheckBox   复选框

JCheckBox的构造函数、常用方法和JRadioButton的完全一样,只是把JRadioButton换为JCheckBox。

5、ButtonGroup   按钮组

ButtonGroup group=new ButtonGroup();   //ButtonGroup是Swing的一个类,不带前缀J,并不是组件,不能被添加到某个容器中

group.add(btn1);    //ButtonGroup只是逻辑上的一个容器,表示一组按钮,并非实际的UI容器,所以还是要在实际的UI容器中添加按钮

group.add(btn2);

.....

container.add(btn1);

container.add(btn2);

.....

ButtonGroup可以添加普通按钮/单选按钮/复选框,将一组单选按钮放在ButtonGroup中,则这组单选按钮最多只能有一个被选中。

ButtonGroup的常用方法:

clearSelection()    //清除选中状态

判断选中项:

1 Enumeration btns=group.getElements(); //获取这组所有的按钮

2 while(btns.hasMoreElements()) {3 AbstractButton btn =btns.nextElement();4 if(btn.isSelected()){5 //.......

6 }7 }

普通按钮、单选按钮、复选框都是AbstractButton的实现类。

CheckboxGroup和GroupButton的使用方式相似,CheckboxGroup只能组合一组复选框,放入CheckboxGroup后这组复选框只能选择一个。

6、JTextField  单行文本框

构造函数:

TextField()

TextField(String text)   //默认文本

TextField(int columns)   //指定列数(文本框的宽度),注意setSize()对TextField无效

TextField(String text,int columns)

常用方法:

set/getText()

set/getColumns()

7、JPassword

8、JTextArea  多行文本域

构造函数:

TextArea()

TextArea(String text)   //默认文本

TextArea(int rows,int columns)   //行数、列数,TextArea的尺寸由行数、列数决定,setSize()对TextArea无效

TextArea(String text,int rows,int columns)

TextArea(String text,int rows,int columns,int scrollbar)   //最后一个参数指定滚动条,TextArea类的常量,

可用的值:

TextArea.SCROLLBARS_HORIZONTAL_ONLY      //只使用水平滚动条

TextArea.SCROLLBARS_VERTICAL_ONLY   //只使用竖直滚动条

TextArea.SCROLLBARS_BOTH   //同时使用水平、竖直滚动条

TextArea.SCROLLBARS_NONE   //不使用滚动条

前3个,需要的时候才出现滚动条。

使用水平滚动条:第一行达到边界时,会出现水平滚动条,继续往右,不会自动换行,只能手动换行。

不使用水平滚动条:达到边界时,会自动换行,转到下一行开头。

9、Choice  下拉列表   这个是AWT的组件,Swing中没有对应的

3e68cce55d94bccfa83811d5ef155d33.png    

3f6f3e831dea16af4377a341d83231a7.png            

cba10d95e27d64059cf517f91f9ec076.png

1 Choice choice=newChoice();2 choice.add("第一项"); //添加一项

3 choice.addItem("第二项"); //这2种方式的效果相同

Choice可添加某些特殊的事件监听,比如 ItemListener。

10、JPanel   中间容器

构造函数:

JPanel()

JPanel(LayoutManager layout)   //布局管理器

JPanel(boolean isDoubleBuffered)    //是否使用双缓冲

JPanel(LayoutManager layout,boolean isDoubleBuffered)

双缓冲:重绘界面/图像时,界面/图像会闪烁,使用双缓冲可解决闪烁问题。

Swing的组件默认使用双缓冲,AWT的组件只能自己写代码实现双缓冲。

11、JScrollBar   滑动条    可作为滚动条、滑块,比如调节音量、进度

构造函数:

JScrollBar()

JScrollBar(int orientation)   //滑动条的方向,常量,可能的值:Adjustable.HORIZONTAL  水平滑动条,Adjustable.VERTICAL   垂直滑动条

JScrollBar(int orientation,int value,int extent,int min,int max)    //滑动条方向,默认值,滑块大小,滑动条的最小值,滑动条的最大值

常用方法:

getValue()    //获取当前值

setValue(int value)    //设置当前值

使用示例:

1 JScrollBar scrollbar=new JScrollBar(Adjustable.HORIZONTAL,50,100,0,500);2 scrollbar.setPreferredSize(new Dimension(500,10)); //必须设置JScrollBar的大小,不然效果不对

3 panel.add(scrollbar); //添加到容器中

12、JScrollPane   自带滚动条的容器

构造函数:

JScrollPane()

JScrollPane(Component view)    //将一个组件放置到JScrollPane中,一般是将内容放到一个Container中,再将这个Container作为view放到JScrollPane中

JScrollPane(int vsbPolicy,int hsbPolicy)   //设置垂直、水平滚动条,可选的值均为常量。vsb即Vertical ScrollBar,hsb即Horizontal ScrollBar。

JScrollPane(Component view,int vsbPolicy,int hsbPolicy)

vsbPolicy可选的值:

ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS //显示垂直滚动条

ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER //不显示

ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED //需要时才显示

hsbPolicy可选的值:

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED

使用示例:

1 JTextArea area=new JTextArea(5,50);2 JScrollPane pane=new JScrollPane(area,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);



推荐阅读
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 本文介绍如何使用线段树解决洛谷 P1531 我讨厌它问题,重点在于单点更新和区间查询最大值。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
author-avatar
化工12卓越团支部CUP
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有