java 有一个强大的的 API(Application Programming Interface 应用程序编程接口)) 类, 首先介绍 swing 组件
在应用 swing 组件或者 awt 前, 应导入包
- import javax.swing.*;
- import java.awt.*;//* 表示任何以其为前缀的 API 类
常用的 swing 组件分为以下几部分:
窗体容器组件类: JFrame 类 顶级容器
常用面板: JPanel 面板可以聚集一些组件类布局, 需要明确的是面板也是一种容器, 一般情况我们通常定义多个 JPanel 面板对象, 添加到一个 JFrame 类对象容器中.
元素组件类: 用来显示图片或文字, 接受输入的 {
JLabel 类: 标签元素组件类, 可以用来显示图片, 文字信息
JButton 类: 按钮元素组件类, 用来显示文字图片, 可以点击
JTextField 类: 文本输入框元素组件类, 用来接受用户输入的信息, 然后可以将其显示出来
JPasswordField 类: 密码输入框元素组件类, 用来接受用户输入的信息, 然后可以以特定的符号显示出来, 比如'*', 达到密码的安全性.
JRadioButton 类: 单选按钮组件类, 显示一个圆形图标, 圆形图标旁可以附加一些说明文字, 当用户选择某个按钮之后, 按钮组中的其他按钮将被自动取消.
按钮组使用 ButtonGroup 定义, 然后将 JRadioButton 对象添加到按钮组中.
JCheckBox 类: 复选框元素组件类, 提供一个选择框, 然后在选择框后还可以有相应的图片文字信息.
}
其他类 {
Dimension 类: 封装组件宽度高度类, 可以通过组件对象. setPreferredSize(new Dimension(width,hight)) 来控制组件的大小,
ImageIcon 类: 图片类, 可以用来加载磁盘上的图片. 使用方法为 ImageIcon image=new ImageIcon("图片地址")
FlowLayout 类: 流式布局类 (JPanel 组件默认的布局类: 流式居中布局), 即从左至右, 从上至下的布局类
BorderLayout 类: 边框布局类 (JFrame 组件的默认布局类), 即分为东南西北
GridLayout 类: 网格布局类, 将容器划分为网格, 所以组件可以按行和列进行排列, 在网格布局中, 每一个组件的大小都相同, 实例化的写法为:
JTextPanel 类 : 是一个可以编辑和显示 html,rtf 和普通文本的富文本组件, 能实现的功能较多,
- import javax.swing.*;
- import java.awt.*;
- public class Calculator{
- public static void main(String args[]) {
- JFrame frame=new JFrame();
- frame.setSize(400,700);
- frame.setTitle("图形界面");
- frame.setDefaultCloseOperation(3);
- frame.setLocationRelativeTo(null);
- frame.setResizable(false);
- frame.setVisible(true);
- }
- }
- import java.awt.*;
- import javax.swing.*;
- public class Calculator{
- public static void main(String[] args) {
- String[] name={"7","8","9","*","单位","4","5","6","/","M+","1","2","3","+","M-","0","00",".","-","="};
- JFrame f=new JFrame("caculator");
- f.setLocationRelativeTo(null);
- f.setSize(250, 300);
- f.setResizable(false);
- JPanel p=new JPanel(null);
- GridLayout grid=new GridLayout(4,4);
- p.setLayout(grid);
- p.setBounds(20,45,200,200);
- for(int i=0;i<name.length;i++){
- JButton b=new JButton(name[i]);
- b.setSize(20, 20);
- b.setMargin(new Insets(2,2,2,2));
- p.add(b);
- }
- JTextField text=new JTextField("0");
- text.setBounds(20, 10, 200, 30);
- text.setBackground(Color.yellow);
- text.setHorizontalAlignment(JTextField.RIGHT);
- Container c=f.getContentPane();
- c.setLayout(null);
- c.add(p);
- c.add(text);
- f.setVisible(true);
- }
- }
- import java.awt.BorderLayout;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class Calculator extends JFrame {
- private static final long serialVersionUID = 1L;
- JPanel jp1, jp2;
- JButton jb1, jb2, jb3, jb4, jb5, jb6;
- public static void main(String[] args) {
- new Calculator();
- }
- public Calculator() {
- // JPanel 布局默认是 FlowLayout 流布局
- jp1 = new JPanel();
- jp2 = new JPanel();
- jb1 = new JButton("1");
- jb2 = new JButton("2");
- jb3 = new JButton("3");
- jb4 = new JButton("4");
- jb5 = new JButton("5");
- jb6 = new JButton("5");
- jp1.add(jb1);
- jp1.add(jb2);
- jp2.add(jb3);
- jp2.add(jb4);
- jp2.add(jb5);
- this.add(jp1, BorderLayout.NORTH);
- this.add(jb6, BorderLayout.CENTER);
- this.add(jp2, BorderLayout.SOUTH);
- this.setSize(300, 250);
- this.setLocation(200, 200);
- this.setVisible(true);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- }
来源: http://www.bubuko.com/infodetail-3289543.html