Swing系列之控件一
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系列之控件一的更多相关文章
- Map工具系列-08-map控件查看器
所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载
在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...
- Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系
Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系 1. Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似 ...
- Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...
- Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
- Win10 UWP开发系列——开源控件库:UWPCommunityToolkit
在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...
- DevExpress学习系列(控件篇):GridControl的基本应用
一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...
- C# 学习笔记 三层架构系列(控件一)
下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...
- [WPF 知识总结系列] —— 基本控件的简单样式集合
一.ScrollBar <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta ...
随机推荐
- windows下nodejs安装及配置
1)在 http://nodejs.org/download/下载一个window的安装包 2)运行安装包,设置安装路径,如安装到D:\nodejs,安装后会自动将d:\nodejs添加到系统变量pa ...
- MySQL 完整和增量备份与恢复
MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...
- MarkDown本地图片上传工具制作总结
引言:开始尝试使用MarkDown语法写文档,发现图片必须用外链的形式才能插入到文章中,而自己平时最常用的插入图片方式就是QQ截屏,觉得很不方便所以制作的小工具辅助上传,因为时间和水平有限,其实代码写 ...
- libpng处理png图片(一)
一:libpng库的编译 环境:windows10 + VS2013 需要下载:libpng, zlib两个库 下载地址: libpng:http://libmng.com/pub/png/libpn ...
- Python实现脚本锁功能,同时只能执行一个脚本
1. 文件锁 脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件. 通过文件的判断来确定脚本是否正在执行. 方法实现也比较简单,这里以python脚本为例 #coding= ...
- SSH 远程执行任务
SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进 ...
- 玩一玩nodejs--一个简单的在线实时填表应用
学习nodejs三天,入了个门,感觉他和jsp.php还是存在较大的差别.本文首先复习这些天学的一些知识点,然后谈一下如何一步一步到做一个在线实时填表的小应用,进一步巩固一下这些个知识点.这里先简单介 ...
- Java中实现多线程关键词整理
Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excutors,ThreadPoolExcetor在这里对这些关键词 ...
- Redis学习-发布/订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.Redis 客户端可以订阅任意数量的频道. 常用命令 命令 描述 复杂度 返回 PSUBS ...
- JAVA中线程的状态
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...