JavaGUI编程三
面板组件
Swing组件中提供了一些面板组件(中间容器),这些面板组件不能单独存在,只能放置在顶级窗口容器中。
常见的组件
JPanel:JPanel面板组件时一个无边框不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器时FlowLayout
JScrollPane:JScrollPane是一个带有滚动条的面板容器,且只能添加一个组件;想向JScrollPane面板中添加多个组件,应先将这多个组件添加到某个组件中,然后再将这个组件添加到JScrollPane中。
常用构造方法:
JScrollPane():创建一个空的JScrollPane面板
JScollPane(Component view):创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条。
JScrollPane(Component view,int vsbPolicy,int hsbPolicy):创建一个显示指定容器、并且具有指定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略。
说明:第三个构造方法是再第二个构造方法的基础上指定滚动条策略。如果再构造方法中没用指定显示组件和滚动条策略,也可以使用JScrollPane提供的方法进行设置。
JScrollPane设置面板滚动策略的方法
void setHorizontalBarPolicy(int policy):指定水平滚动条策略,即水平滚动条何时显示在滚动面板上
void setVericalBarPolicy(int policy):指定垂直滚动条策略,即垂直滚动条何时显示在面板上
void setViewportView(Component view):设置在滚动面板显示的组件。
说明:上述方法是JScrollPane滚动面板组件对象提供的设置滚动策略的方法。滚动策略方法取值可以使用ScrollPaneConstants接口中声明了多个常量属性来进行设置。
JScrollPane滚动策略常量值
VERTICAL_SCROLLBAR_AS_NEEDED
HORIZONTAL_SCROLLBAR_AS_NEEDED
当填充的组件视图超过客户端窗口大小时,自动显示水平和竖直放行滚动条(JscrollPane组件 的默认值)
VERTICAL_SCROLLBAR_ALWAYS
HORIZONTAL_SCROLLBAR_ALWAYS
无论填充的组件视图大小,始终显示水平和竖直放行滚动条
VERTICAL_ SCROLLBAR_ NEVER
HORIZONTAL_SCROLLBAR_NEVER
无论填充的组件视图大小,始终不显示水平和竖直放行滚动条
样例代码:
1 | import javax.swing.*; |
效果图:
文本组件
文本组件用于接收用户输入的信息,包括文本框(JTextField,接收一行数据)、文本域(JTextArea,接收多行数据)等。
他们都有一个共同的父类JTextCompaonent,JtextComponent是一个抽象类。
常用方法
String String getText():返回文本组件中所有的文本内容
String getSelectedText():返回文本组件中选定的文本内容
void selectAll():在文本组件中选中所有的内容
void setEditable():设置文本组件为可编辑或者不可编辑状态
void setText(String text):设置文本组件内容
void replaceSelection(String content):用给定的内容替换当前选定的内容
JTextField:
JTextField成为文本框,它只能接收单行文本的输入。
常用构造方法:
JTextField():创建一个空的文本框,初始字符串为null
JTextField(int columns):创建一个具有指定列数的文本框,初始字符串为null
JTextField(String text):创建一个显示指定初始字符串的文本框
JTextField(String text,int column):创建一个具有指定列数、并显示指定初始字符串的文本框
说明:
JTextField右一个子类JPasswordField,表示一个单行输入密码框。在此框中是通过显示指定的回显字符作为占位符。新创建的密码框默认的回显字符为*。
JTextArea:
JTextArea称为文本域,它能接收多行文本的输入,使用JTextArea构造方法创建对象时可以设定区域的行数、列数
常用构造方法:
JTextArea():构造方法,创建一个空的文 本域
JTextArea(String text):构造方法,创建显示指定初始字符串的文本域
JTextArea(int rows,int columns):构造方法,创建具有指定行和列的空的文本域
JTextArea(String text, int rows,int columns):构造 方法,创建显示指定初始文本并指定了行列的文本域
样例代码:
1 | import javax.swing.*; |
效果截图: