Swing系列之控件一

时间:2022-10-03 23:59:13

Swing系列之控件

JTextArea

JTextArea是一个实现多行文本的控件

构造函数

  • JTextArea() 构造新的TextArea。
  • JTextArea(Document doc) 构造新的 JTextArea,使其具有给定的文档模型,所有其他参数均默认为 (null, 0, 0)。
  • JTextArea(Document doc, String text, int rows, int columns) 构造具有指定行数和列数以及给定模型的新的 JTextArea。
  • JTextArea(int rows, int columns) 构造具有指定行数和列数的新的空 TextArea。
  • JTextArea(String text) 构造显示指定文本的新的 TextArea。
  • JTextArea(String text, int rows, int columns) 构造具有指定文本、行数和列数的新的 TextArea。

常用的方法

  • append(String text) 在末尾插入文本
  • getColumns()
  • getLineWrap() 获取文本区的换行策略
  • setLineWrap(boolean wrap) 设置换行的策略,如果设置为true,那么就会在一行结束的时候自动换行
  • setWrapStyleWord(boolean wrap) 设置断行不断字,也就是在你写单词写到末尾的时候如果没有写完,那么就会将你这个单词一起移到下一行来,而不是只移动一个单词下来,这样就会单词不分割了
  • setFont(Font f) 设置字体
  • insert(String str, int pos) 将指定文本插入指定位置。
  • replaceRange(String str, int start, int end) 用给定的新文本替换从指示的起始位置到结尾位置的文本。
  • setRows(int rows) 设置此 TextArea 的行数。

JScrollPane

构造函数

  • JScrollPane() 创建一个空的(无视口的视图)JScrollPane,需要时水平和垂直滚动条都可显示。
  • JScrollPane(Component view) 创建一个显示指定组件内容的 JScrollPane,只要组件的内容超过视图大小就会显示水平和垂直滚动条。
  • JScrollPane(Component view, int vsbPolicy, int hsbPolicy) 创建一个 JScrollPane,它将视图组件显示在一个视口中,视图位置可使用一对滚动条控制。vsbPolicy和hsPolicy是用来控制滚动条何时出现的,其中的值如下:
  • HORIZONTAL_SCROLLBAR_ALAWAYS: 总是显示水平滚动轴。
  • HORIZONTAL_SCROLLBAR_AS_NEEDED:当组件内容水平区域大于显示区域时出现水平滚动轴。
  • HORIZONTAL_SCROLLBAR_NEVER: 总是不显示水平滚动轴。
  • VERTICAL_SCROLLBAR_ALWAYS: 总是显示垂直滚动轴。
  • VERTICAL_SCROLLBAR_AS_NEEDED: 当组件内容垂直区域大于显示区域时出现垂直滚动轴。
  • VERTICAL_SCROLLBAR_NEVER: 总是不显示垂直滚动轴。
  • JScrollPane(int vsbPolicy, int hsbPolicy) 创建一个具有指定滚动条策略的空(无视口的视图)JScrollPane。

常用的方法

  • setHorizontalScrollBarPolicy(int policy) 确定水平滚动条何时显示在滚动窗格上。
  • setVerticalScrollBarPolicy(int policy) 确定垂直滚动条何时显示在滚动窗格上。
  • setColumnHeaderView(Component view) 创建一个列标题视口(如果有必要),设置其视图然后将此列标题视口添加到滚动窗格。设置水平表头
  • setRowHeaderView(Component view) 设置垂直表头,即是创建一个行标题视口
  • setViewportBorder(Border viewportBorder) 围绕视口添加一个边界。

实例

package demo;

import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; public class demo extends JFrame {
private JTextField textField; public demo() {
super();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 400, 300);
JPanel panel_North = new JPanel();
this.getContentPane().add(panel_North, BorderLayout.NORTH);
FlowLayout flowLayout = (FlowLayout) panel_North.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT); JLabel label = new JLabel("name:");
label.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20));
panel_North.add(label); textField = new JTextField(20);
textField.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20));
panel_North.add(textField); JTextArea textArea = new JTextArea(6, 30);
textArea.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20));
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true); JPanel panel_center = new JPanel(); FlowLayout flowLayout_center = (FlowLayout) panel_center.getLayout();
flowLayout_center.setAlignment(FlowLayout.LEFT);
this.getContentPane().add(panel_center, BorderLayout.CENTER); //设置中间的组件 JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //设置水平滚动条出现的时间
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//设置垂直滚动条出现的时间
panel_center.add(scrollPane); JPanel panel_header = new JPanel();
JLabel label_header = new JLabel("水平表头");
panel_header.add(label_header);
scrollPane.setColumnHeaderView(panel_header); //设置水平表头 JPanel panel_v = new JPanel();
JLabel label_v = new JLabel("垂直表头");
panel_v.add(label_v);
scrollPane.setRowHeaderView(panel_v); //设置垂直表头 } public static void main(String[] args) {
demo f = new demo();
f.setVisible(true); } }

JScrollBar

滚动条的实现。用户在滚动条内移动滑块可确定显示区域中的内容。该程序通常将显示调整为滚动条的结束代表可显示内容的结束,或内容的 100%。滚动条的开始为可显示内容的开始,或 0%。然后滑块在其边界中的位置转换为可显示内容对应的百分比。

构造函数

  • JScrollBar() 创建具有下列初始值的垂直滚动条
  • JScrollBar(int orientation) 创建具有指定方向和下列初始值的滚动条,其中的值为JScrollBar.VERTICAL(垂直滚动条),JScrollBar.HORIZONTAL(水平滚动条)
  • JScrollBar(int orientation, int value, int extent, int min, int max) 创建具有指定方向、值、跨度、最小值和最大值的一个滚动条。value为当前滚动条位于的位置,min和max共同组成了滚动条的范围,extent表示滚动条的跨越的宽度

常用方法

* addAdjustmentListener(AdjustmentListener l) 添加一个滚动条调整的事件侦听器,例子如下:

scrollBar_1.addAdjustmentListener(new AdjustmentListener() {    //添加一个事件侦听器
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
scrollBar_1=(JScrollBar)e.getSource(); //获得监听的控件,这里要强制转换成滚动条类型的
textField_North.setText(""+scrollBar_1.getValue()); //r如果滚动条移动了,那么就将刻度显示在文本域中 }
});
  • setModel(BoundedRangeModel newModel) 设置处理滚动条的以下四个基本属性的模型:minimum、maximum、value 和 extent。通过这个函数可以将滚动条与其他的控件绑定在一起,下面将会演示一下JTextField绑定滚动条
//获取文本字段的可见性,如果文本字段大小大于分配给他的大小那么可以对他进行调整
BoundedRangeModel boundedRangeModel = textField.getHorizontalVisibility();
//设置处理滚动条的以下四个基本属性的模型:minimum、maximum、value 和 extent。
scrollBar.setModel(boundedRangeModel); //通过这个的绑定,就将滚动条和文本域绑定在一起了
  • setOrientation(int orientation) 将滚动条的方向设置为 VERTICAL 或 HORIZONTAL。
  • setMaximum(int maximum) 设置模型的 maximum 属性。
  • setMinimum(int minimum) 设置模型的 minimum 属性。
  • setValue(int value) 设置当前的值
  • setUnitIncrement(int unitIncrement) 设置 unitIncrement 属性,设置拖曳滚动轴时,滚动轴刻度一次的变化量。
  • setBlockIncrement(int blockIncrement) 设置 blockIncrement 属性, 设置当鼠标在滚动轴列上按一下是,滚动轴一次所跳的区块大小
  • setVisibleAmount(int extent); 设置extent值

JTextPanel

可以用以图形方式表示的属性来标记的文本组件,相当于处理文本的工具word文档一样,可以在其中为文本设置不同的属性

构造函数

  • JTextPane() 创建一个新的 JTextPane。
  • JTextPane(StyledDocument doc) 创建具有指定文档模型的新 JTextPane。

常用方法

  • setCharacterAttributes(AttributeSet attr, boolean replace) 将给定属性应用于字符内容,这个是将样式应用到文本的函数
  • getStyledDocument() 获取与编辑器关联的模型。

实例

package demo;

import javax.swing.*;
import javax.swing.text.*;
import java.awt.*; /**
* Created by chenjiabing on 17-5-22.
*/
public class TextPane extends JFrame {
public TextPane() {
super();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 400, 500); JTextPane textPane = new JTextPane();
// textPane.setBackground(Color.black); // textPane.setFont(new Font("微软雅黑",Font.ITALIC,20));
JScrollPane scrollPane = new JScrollPane(textPane);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); SimpleAttributeSet simpleAttributeSet = new SimpleAttributeSet(); //创建一个属性
StyleConstants.setForeground(simpleAttributeSet, Color.GREEN); //设置前景色
StyleConstants.setBold(simpleAttributeSet, true); //设置加粗
StyleConstants.setUnderline(simpleAttributeSet, true); //设置下划线
StyleConstants.setFontFamily(simpleAttributeSet, "微软雅黑"); //设置字体
StyleConstants.setFontSize(simpleAttributeSet, 20); //设置字体大小
StyleConstants.setItalic(simpleAttributeSet, true); //设置倾斜
StyleConstants.setStrikeThrough(simpleAttributeSet, true); //设置删除线
StyleConstants.setFirstLineIndent(simpleAttributeSet, 2.5f); //设置首行缩进
StyleConstants.setLineSpacing(simpleAttributeSet, 20);
StyleConstants.setRightIndent(simpleAttributeSet, 2.4f); textPane.setCharacterAttributes(simpleAttributeSet, true);
// Document doc=textPane.getStyledDocument(); //获得关联的文本
// try {
// doc.insertString(doc.getLength(), "陈加兵", simpleAttributeSet); //向文本中插入字符串
// }catch (BadLocationException e)
// {
// e.printStackTrace();
// }
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
} public static void main(String[] args) {
TextPane text = new TextPane();
text.setVisible(true); } }

Swing系列之控件一的更多相关文章

  1. Map工具系列-08-map控件查看器

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  2. Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

    在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...

  3. Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系

    Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系 1. Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似 ...

  4. Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法

    在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...

  5. Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  6. Win10 UWP开发系列——开源控件库:UWPCommunityToolkit

    在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...

  7. DevExpress学习系列(控件篇):GridControl的基本应用

    一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...

  8. C# 学习笔记 三层架构系列(控件一)

    下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...

  9. [WPF 知识总结系列] —— 基本控件的简单样式集合

    一.ScrollBar <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta ...

随机推荐

  1. 【转载】HTTP 错误 500&period;19 - Internal Server Error

    windows 2008下IIS7 安装ASP.NET 遇到如下错误: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. ...

  2. BaseAdapter自定义适配器——思路详解

    BaseAdapter自定义适配器——思路详解 引言: Adapter用来把数据绑定到扩展了AdapterView类的视图组.系统自带了几个原生的Adapter. 由于原生的Adapter视图功能太少 ...

  3. Android应用开发学习之启动另外一个Activity

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 一个Activity可以启动另外一个Activity,以实现比较复杂的功能,我们来看一个例子,其运行效果如下图所示: ...

  4. 通过 C&num; 代码操作 Google 日历

    原文:通过 C# 代码操作 Google 日历 本文主题 借助 Google .NET APIs Client Library,通过 C# 代码在 Google 日历中创建会议邀请. 本文背景 最近, ...

  5. 从零开始学C&plus;&plus;之运算符重载(三):完善String类(&lbrack;&rsqb;、 &plus;、 &plus;&equals; 运算符重载)、&gt&semi;&gt&semi;和&lt&semi;&lt&semi;运算符重载

    在前面文章中使用过几次String类的例子,现在多重载几个运算符,更加完善一下,并且重载流类运算符. []运算符重载 +运算符重载 +=运算符重载 <<运算符重载 >>运算符重 ...

  6. bat文件的一些小技巧

    bat文件的简介: bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文 ...

  7. ant 注意

    nt文件在部署时,如果控制台出现乱码则需要调整语言. 高版本eclipse在jdk高版本中已经植入了ant的部署.因此不需要单独配置ant.jar. 如果版本低,可下载ant插件,或者下载ant的工具 ...

  8. Python&lowbar;14-绘图

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  9. php类和对象&lpar;二&rpar;

    面向对象第三大特性:多态 概念: 当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致我们在使用该引用取调用相应方法时表现出的不同 条件: 1.必须有继承 2.子类必须对父类的方法进行重写 ...

  10. m3u8格式转MP4

    公司直播平台使用的是七牛直播,今天有客户表示想将直播回放视频下载下来,数据妹子犯了愁,表示这个不会下载给客户,于是乎这个任务就落在了我的头上.熟练的打开视频,在 HTML 源代码播放地址为 http: ...