package com.zking.test;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class BaseComponentDemo extends JFrame{
/**
* 基础组件
* 1.分类:输入框(账号框,密码框),按钮,文本标签,文本域,文件选择器,单选框,复选框,下拉框
* 2.作用:美化窗体
* 3.使用方式
* (1)api查阅指定组件名称并实例化
* (2)将实例化的基础组件添加到中间组件中
* (3)将中间组件添加到窗体(顶层组件)中。
* 4.具体基础组件
* JLabel 文本标签
* JButtom 按钮
* JRadioBuccon 单选按钮
* JCheckBox 复选按钮
* JTextField 普通文本输入框
* JPasswordField 密码框
* JComboBox 下拉框组件
* JTextArea 文本域
* JFileChooser 文件选择器
*
* 5.中间组件
* JPanel 面板 使用率最高
* JScrollPane 滚动面板
*/
public BaseComponentDemo() {
this.setTitle("基础组件");
this.setSize(600, 500);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
// 建立中间组件JPanel面板
JPanel jpanel = new JPanel();
// 设置jpanel面板的背景颜色
jpanel.setBackground(Color.PINK);
// --------------------将基础组件添加到中间组件-------------------------------
/**
* 1.api查阅指定组件名称并实例化 2.将实例化的基础组件添加到中间组件中
*/
/**
* 标签 JLabel
*/
// 1.api查阅指定组件名称并实例化
JLabel jla = new JLabel("用户登录");
// 设置字体大小(加粗,风格)
jla.setFont(new Font("华文行楷", Font.BOLD, 30));
// 设置字体颜色
jla.setForeground(Color.YELLOW);
// 设置jla组件的边框线
jla.setBorder(BorderFactory.createLineBorder(Color.blue));
// 设置背景无效jla.setBackground(Color.red);
// 2.将实例化的基础组件添加到中间组件中
jpanel.add(jla);
//---------------------------------------------------
/**
* 按钮JButton 按钮的构造函数: 1.可以传入字符串 2.可以传入图片
*/
JButton jba = new JButton("登录");
// jba.setEnabled(false); //设置按钮不可编辑
// 设置按钮的大小
jba.setPreferredSize(new Dimension(500, 50));
// 设置字体大小
jba.setFont(new Font("宋体", Font.BOLD, 30));
// 设置背景
jba.setBackground(Color.green);
// 设置鼠标的手势
jba.setCursor(new Cursor(Cursor.HAND_CURSOR));
jpanel.add(jba);
//---------------------------------------------------
/**
* 普通文本输入框 JTextField
*/
JTextField jtfa = new JTextField(15);
jpanel.add(jtfa);
/**
* 密码输入框 JPasswordField
*/
JPasswordField jpfa = new JPasswordField(15);
jpanel.add(jpfa);
/**
* 单选按钮 JRadioButton
* 注意事项:在窗体中使用单选按钮组件时,必须将多个对象进行合成一组,在一组内只能选择一个
*
* 单选按钮分组: ButtonGroup
*/
JRadioButton jrba = new JRadioButton("男");
JRadioButton jrbb = new JRadioButton("女");
//创建分组对象
ButtonGroup bg = new ButtonGroup();
//将单选按钮加入分组对象中即可
bg.add(jrba);
bg.add(jrbb);
jpanel.add(jrba);
jpanel.add(jrbb);
/**
* 复选按钮 JCheckBox
*/
JCheckBox jcba = new JCheckBox("吃饭");
JCheckBox jcbb = new JCheckBox("打康康");
JCheckBox jcbc = new JCheckBox("看电影");
JCheckBox jcbd = new JCheckBox("锤康康");
JCheckBox jcbe = new JCheckBox("睡康康");
jpanel.add(jcba);
jpanel.add(jcbb);
jpanel.add(jcbc);
jpanel.add(jcbd);
jpanel.add(jcbe);
/**
* 下拉框 JComboBox
*/
JComboBox jcbaa = new JComboBox();
//往下拉框中加载数据
jcbaa.addItem("康康");
jcbaa.addItem("游游");
jcbaa.addItem("王王");
jcbaa.addItem("俊俊");
jcbaa.addItem("烨烨");
jcbaa.addItem("文文");
jpanel.add(jcbaa);
/**
* 文本域 JTextArea
*/
JTextArea jtaa = new JTextArea(5, 50);
//问题:内容增多后,文本y域的高度会溢出。
//加载滚动条
/**
* 实例化一个滚动条面板(中间组件) JScrollPane
*/
JScrollPane jsp = new JScrollPane(jtaa);
jpanel.add(jsp);
/**
* 文件选择器 JFileChooser
*/
JFileChooser jfc = new JFileChooser();
jpanel.add(jfc);
// 获取窗体后将jpanel中间组件面板加入其中
this.getContentPane().add(jpanel);
this.setVisible(true);
}
public static void main(String[] args) {
new BaseComponentDemo();
/**
* JLabel
* JButton
* JTextField
* JPasswordField
* JRadioButton|ButtonGroup
* JCheckBox
* JComboBox
* JScrollPane
* JTextArea
* JFileChooser
*/
}
}