?1.java的图形界面简单介绍
?
1).awt
??jdk1.4之前就推出的图形界面类。
??跨平台性
?2).swing
??jdk1.4的时候推出的图形界面类
?
(1)
swing的图像界面类添加了一些新的东西一般是带J的,比如说JFrame,JLabel等等,这样是图形界面类跟家丰富了,其次实现了更好的跨平台性和可移植性
?
2.常用的Swing图形界面API类
?1.容器
??JFrame?????????? 窗体类
??JPanel?????????? 面板类
?
?2.元素组件
??JButton????????? 按钮类
??JLabel???? ? 标签类
??JTextField??? ? 单行文本输入框类
??JPasswordField?? 密码文本输入框类
??JCheckBox??????? 复选框类
??JComboBox??????? 下拉框类
JMenuBar????????? 菜单栏类
JMenu???????????? 菜单类
JMenuItem?????? 子菜单类
JSeparator??????? 水平分割符类
?
?包名:javax.swing.*;
?
3.常用的布局API类
?FlowLayout???????? 流式布局类
?BorderLayout?????? 边框布局类
?GridLayout???????? 网格布局类
?
?包名:java.awt.*;
4.按钮和标签上可以加图片
可以添加图片
eg;
javax.swing.ImageIcon?? image = new javax.swing.ImageIcon("图片的路径");
javax.swing.JLabel?? jla = new javax.swing.JLabel(image);
按钮上添加图片与标签上的类似
?
5.实现一个简单的登录界面
1).新建一个文本文档,将文件的名字修改为Login.java
2).定义Login类和main函数。
3).定义初始化界面的方法。
4).在初始化界面的方法中实例化一个JFrame类的对象。
5).设置JFrame类对象的属性值。
6).实例化元素组件对象,添加到窗体上。
7).在Main函数中实例化Login类的对象,然后调用初始化界面的方法。
??
class="java" name="code">/**
* 定义一个test的包来管理CalculatorUI类
*/
package test;
import javax.swing.*;
import java.awt.*;
/**
* 定义一个CalculatorUI类
* @author Allen
*
*/
public class CalculatorUI {
// private static final String Integer = null;
/**
* 定义一个一个程序的入口主函数
* @param args
*/
public static void main(String[] args){
//创建一个CalculatorUI类的对象
CalculatorUI cal = new CalculatorUI();
//调用初始化界面的方法
cal.IntUI();
}
//初始化一个界面
public void IntUI(){
//创建一个窗体对象
JFrame jf = new JFrame();
/*
* 设置窗体
*/
jf.setTitle("计算器界面");
jf.setSize(220,320);
jf.setResizable(false);
jf.setDefaultCloseOperation(3);
jf.setLocationRelativeTo(null);
/*
* 设置计算器的背景
*/
ImageIcon image = new ImageIcon("image/bkg.png");
JLabel jlab = new JLabel(image);//标签上添加图片
//设置标签的大小
jlab.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
//将标签添加到面板的最底层
jf.getLayeredPane().add(jlab);
//将LayeredPane上一层的面板设置为透明
JPanel contentPanel = (JPanel)jf.getContentPane();
/*
*设置面板透明
*/
contentPanel.setOpaque(false);
panelNorth().setOpaque(false);
panelCenter().setOpaque(false);
panelEast().setOpaque(false);
/*
* 添加菜单栏及面板到窗体
*/
jf.setJMenuBar(menuBar());
jf.add(panelNorth(),BorderLayout.NORTH);
jf.add(panelCenter(),BorderLayout.CENTER);
jf.add(panelEast(),BorderLayout.EAST);
//设置窗体的可见性
jf.setVisible(true);
}
/*
*创建菜单
*/
private JMenuBar menuBar(){
//创建菜单栏
JMenuBar jme = new JMenuBar();
JMenu jm = new JMenu("查看(V)");//创建菜单
jme.add(jm);//菜单栏添加菜单
/*
* 创建菜单子项对象
*/
JMenuItem jmeI = new JMenuItem("标准型(T)");
JMenuItem jmeI1 = new JMenuItem("科学性(S)");
JMenuItem jmeI2 = new JMenuItem("程序员(P)");
//创建水平分割线
JSeparator js = new JSeparator();
/*
* 添加子项及水平分割线到菜单
*/
jm.add(jmeI);
jm.add(jmeI1);
jm.add(js);
jm.add(jmeI2);
JMenu jm1 = new JMenu("编辑(E)");//创建菜单
jme.add(jm1);//添加菜单到菜单栏
/*
* 创建菜单子项
*/
JMenuItem jmen = new JMenuItem("复制(C)");
JMenuItem jmen1 = new JMenuItem("粘贴(P)");
JMenuItem jmen2 = new JMenuItem("历史记录(H)");
JSeparator js1 = new JSeparator();//创建水平分割线
/*
* 添加子项及水平分割线到菜单
*/
jm1.add(jmen);
jm1.add(jmen1);
jm1.add(js1);
jm1.add(jmen2);
JMenu jm2 = new JMenu("帮助(H)");//创建菜单项
jme.add(jm2);//添加菜单到菜单栏
/*
* 创建菜单子项
*/
JMenuItem jmenu = new JMenuItem("查看帮助(V)");
JMenuItem jmenu1 = new JMenuItem("关于计算器(A)");
JSeparator js2 = new JSeparator();
/*
* 添加子项及水平分割线到菜单
*/
jm2.add(jmenu);
jm2.add(js2);
jm2.add(jmenu1);
//返回菜单栏对象
return jme;
}
//创建北边的面板
private JPanel panelNorth(){
//实例化一个面板
JPanel jpa = new JPanel();
JTextField jte = new JTextField();//创建一个文本框
jte.setPreferredSize(new Dimension(200,55));//设置文本框的大小
jte.setEditable(false);//设置文本框不可编辑
jte.setText("0");//设置文本框的初始字符
jte.setHorizontalAlignment(JTextField.RIGHT);//设置字符靠右边输出
jte.setFont(new Font("行书",Font.BOLD,35));//设置字符
jpa.add(jte);//面板上添加文本框
//返回面板对象
return jpa;
}
//创建中央的面板
private JPanel panelCenter(){
JPanel jpa = new JPanel();//实例化一个面板对象
jpa.setLayout(new FlowLayout(FlowLayout.RIGHT,7,5));//设置窗体的流式布局
//创建一个数组
String [] array ={"image/mc.png","image/mr.png","image/ms.png","image/m+.png","image/←.png","image/ce.png",
"image/c.png","image/加减.png","image/7.png","image/8.png","image/9.png","image/除.png","image/4.png","image/5.png",
"image/6.png","image/乘.png","image/1.png","image/2.png","image/3.png","image/减.png","image/0.png","image/点.png","image/加.png"};
//循环遍历数组
for(int i=0;i<array.length;i++){
//创建一个按钮对象
JButton jbu = new JButton(new ImageIcon(array[i]));
if(array[i].equals("image/0.png")){
jbu.setPreferredSize(new Dimension(75,26));
} else{
jbu.setPreferredSize(new Dimension(34,26));
}
//添加按钮到面板
jpa.add(jbu);
}
//返回面板对象
return jpa;
}
//创建中央的面板
private JPanel panelEast(){
JPanel jpa = new JPanel();//实例化一个面板对象
jpa.setLayout(new FlowLayout(FlowLayout.LEFT,0,5));//设置窗体的流式布局
jpa.setPreferredSize(new Dimension(40,0));//设置面板的大小
//创建一个数组
String [] array ={"image/m-.png","image/根号.png","image/%.png","image/1x.png","image/=.png"};
//循环遍历数组
for(int i=0;i<array.length;i++){
//创建一个按钮对象
JButton jbu = new JButton(new ImageIcon(array[i]));
if(array[i].equals("image/=.png")){
jbu.setPreferredSize(new Dimension(34,56));
} else{
jbu.setPreferredSize(new Dimension(34,26));
}
//添加按钮到面板
jpa.add(jbu);
}
//返回面板对象
return jpa;
}
}
?