自学并整理一些swing基础知识,希望能对swing学习有所帮助。
1、UI 组件
什么是UI?
答:UI即“用户界面”。实际上,在计算机和用户的交互之中扮演角色的任何对象都是 UI 的组成部分。
具体来说:这些对象可能是按下的按钮、打开和关闭的窗口,鼠标、键盘、屏幕颜色、以及一个对象相对于另一个对象的位置等。
2、Swing
什么是Swing?
答:Swing 是 Java 平台的 UI 。它实际上充当用户和计算机内部之间的中间人。Swing 提供了创建自己的 UI 所需要的所有工具。
3、MVC
Swing 的设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。即:让 UI 的每个方面处理它擅长的工作。
好处:提高处理效率。
基本原则:用可视组件显示数据,同时让其他类操纵数据。
4、JComponent
JComponent是Swing 的整个可视组件库的基础构造块。是所有组件的父类。它是一个抽象类,它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。
*JComponent包含 add() 方法,可以添加其他 JComponent。也就是说,可以把任意 Swing 组件添加到其他任何 Swing 组件中构造嵌套组件。(例如,JPanel 包含 JButton)
5、简单的swing小部件一、Swing 的三个基本构造块:标签、按钮、文本。
1)JLabel
定义:
*Swing中最简单的组件
用于文本描述或者图片描述
使用方法:
get/setText(): 获取/设置标签的文本。
get/seticon(): 获取/设置标签的图片。
get/setHorizontalAlignment(): 获取/设置文本的水平位置。
get/setVerticalAlignment(): 获取/设置文本的垂直位置。
get/setDisplayedMnemonic(): 获取/设置标签的访问键(下划线文字)。
get/setLableFor(): 获取/设置这个标签附着的组件,当用户按下Alt+访问键时,焦点转移到指定的组件。
2)JButton
定义:
Swing 中的基本动作组件 JButton
按钮
使用方法:get/setText(): 获取/设置标签的文本。
get/seticon(): 获取/设置标签的图片。
get/setHorizontalAlignment():获取/设置文本的水平位置。
get/setVerticalAlignment(): 获取/设置文本的垂直位置。
get/setDisplayedMnemonic(): 获取/设置访问键(下划线字符),与Alt 按钮组合时,造成按钮单击。
还有一些不太常用的方法可以百度获得(具体方法有哪些可参考浏览器快进or后退键)
3)JTextField
定义:
文本
方法:
get/setText(),用于获取/设置 JTextField中的文本。
二、JFrame
定义:
一个允许把其他组件添加到它里面并把组件组织起来最终呈现给用户的容器。
get/setTitle(): 获取/设置帧的标题。
get/setState(): 获取/设置帧的最小化、最大化等状态。
is/setVisible(): 获取/设置帧的可视状态,换句话说,是否在屏幕上显示。
get/setLocation(): 获取/设置帧在屏幕上应当出现的位置。
get/setsize(): 获取/设置帧的大小。
add(): 将组件添加到帧中。
——————————————————————————————————————————————————————————————————————————
实例:public class HelloWorld extends JFrame {//类HelloWorld继承JFrame
private JLabel jLabel;
private JTextField jTextField;
private JButton jButton;
public HelloWorld(){ //构造函数,用于初始化super(); //调用父类方法this.setSize(300, 200); //this指JFrame this.getContentPane().setLayout(null); //排版为null this.add(getJLabel(), null); //将getJLabel()加入到JFrame中 this.add(getJTextField(), null); this.add(getJButton(), null); this.setTitle("HelloWorld"); } private javax.swing.JLabel getJLabel() { //创建 getJLabel() 方法if(jLabel == null) { jLabel = new javax.swing.JLabel(); jLabel.setBounds(34, 49, 53, 18); jLabel.setText("Name:"); } return jLabel; } private javax.swing.JTextField getJTextField() {if(jTextField == null) { jTextField = new javax.swing.JTextField(); jTextField.setBounds(96, 49, 160, 20); } return jTextField; } private javax.swing.JButton getJButton() { if(jButton == null) { jButton = new javax.swing.JButton(); jButton.setBounds(103, 110, 71, 27); jButton.setText("OK"); } return jButton; } public static void main(String[] args) //保证在屏幕上显示JFrame 在main 方法中创建 HelloWorld 应用程序对象,调用setVisible() { HelloWorld w = new HelloWorld(); w.setVisible(true); } }