Swing 是一个为Java设计的GUI工具包。
Swing是JAVA基础类的一部分。
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
1.框架(JFrame)
框架SwingGUI应用程序的主窗口,窗口包括边界、标题、关闭按钮等。
JFrame类是java.awt包中Frame类的子类,其子类创建的对象是窗体,对象(窗体)是重量容器。不能把组件直接添加到Swing窗体中,其含有内容面板容器,应该把组件添加到内容面板中;不能为Swing窗体设置布局,而应当Swing窗体的内容面板设置布局。
Swing窗体通过getContentPane()方法获得JFrame的内容面板,再对其加入组件;
JFrame frame = new JFrame();
Container ct = frame.getContentPane(); //获取内容面板容器
Ct.add(childComponent); //降内容面板容器加入组件
框架(JFrame)常用的方法和事件:
frame.setVisibel(true):显示框架对象代表的框架窗口。
frame.setSize(200,100)或frame.pack():设置框架的初始显示大小。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):当用户单机框架的关闭按钮则退出程序,或者添加WindowListener监听器实现关闭按钮退出程序。
2.面板(JPanel)
JPanel组件定义面板实际上是一种容器组件,用来容纳各种其他轻量级组件。此外,用户还可以用这种面板容器绘制图形。
JPanel的构造方法如下:
JPanel():创建具有双缓冲和流布局(FlowLayout)的面板。
JPanel(LayoutManager layout):创建具有制定布局管理器的面板。
JPanel的 常用方法:
void add(Component):添加组件。
void add(Component,int):添加组件至索引指定位置。
void add(Component,Object):按照指定布局限制添加组件。
void add(Component,Object,int):按照指定布局管理器限制添加组件到指定位置。
void remove(Component):移除组件。
void remove(int):移除指定位置的组件。
void removeAll():移除所有组件。
void paintComponent(Graphics):绘制组件。
void repaint():重新绘制。
void setPreferredSize(Dimension):设置组件尺寸。
Dimension getPreferredSize():获取最佳尺寸。
3.文本框(JTextField和JPasswordField)
JTextField组件用于创建文本框。文本框是用来接收用户的单行文本信息输入的区域。通常文本框用于接收用户信息或其他文本信息的输入。当用户输入文本信息后,如果为JTextField对象添加了事件处理,按回车键后就会触发一定的操作。
JPasswordField是JTextField的子类,是一种特殊的文本框,也是用来接收单行文本信息输入的区域,但是会用回显字符串代替输入的文本信息。因此,JPasswordField组件也称为密码文本框。JPasswordField默认的是回显字符是”*”,用户可以自行设置回显字符。
JTextField的常见构造方法有如下几种:
JTextField():创建一个空文本框。
JTextField(String text):创建一个具有出事文本信息text的文本框。
JTextField(String text,int columns):创建一个具有出事文本信息text以及制定列数的文本框。
JTextField的常用方法:
void setText(String):设置显示内容。
String getText():获取显示内容。
JPasswordField的构造方法有如下几种:
JPasswordField():创建一个空的密码文本框。
JPasswordField(String text):创建一个指定初始文本信息的密码文本框。
JPasswordField(String text,int columns):创建一个指定文本和列数的密码文本框。
JPasswordField(int columns):创建一个指定列数的密码文本框。
JPasswordField是JTextField的子类,因此JPasswordField也具有与JTextField类似的名称和功能的方法,此外,它还具有与JTextField类似的名称和功能的方法,此外,它还具有自己的独特方法:
boolean echoCharIsSet():获取设置回显字符的状态。
void setEchoChar(char):设置回显字符。
void getEchoChar():获取回显字符。
char[] getPassword():获取组件的文本。
4.按钮(Jbutton)
Swing中的按钮是Jbutton,它是javax.swing.AbstracButton类的子类,swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。
在JButton中有如下几个比较常用的构造方法。
JButton(Icon icon): 按钮上显示图标。
JButton(String text): 按钮上显示字符。
JButton(String text,Icon icon): 按钮上既显示图标又先施字符。
JButton类的方法:
setText(String text): 设置按钮的标签文本。
setIcon(Icon defaultIcon): 设置按钮在默认状态下显示的图片。
setRolloverIcon(Icon rolloverIcon): 设置当光标移动到按钮上方时显示的图片。
setPressedIcon(Icon pressedIcon): 设置当按钮被按下时显示的图片。
setContentAreaFilled(boolean b): 设置按钮的背景为同名,当设为fase时表示不绘制,默认为绘制。
setBorderPainted(boolean b): 设置为不绘制按钮的边框,当设为false时表示不绘制,默认为绘制。
按钮组件是GUI中最常用的一种组件。按钮组件可以捕捉到用户的单击事件,同时利用按钮事件处理机制响应用户的请求。JButton类是Swing提供的按钮组件,在单击JButton类对象创建的按钮时,会产生一个ActionEvent事件。
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;