?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; } }
?