高仿QQUI界面
来源:互联网 发布:年月日时干支推算法 编辑:程序博客网 时间:2024/05/17 20:51
JAVA 编程是一个面向对象的过程,要制作简单的UI界面,首先要了解类与对象的概念,以及啥是面向对象,面向过程。
1.什么是类、对象
在生活中,要具体说什么是类,可能很多人都说不出来。一提到类,大多数人想到的都是人类呀,动物类呀以及植物类等等比较抽象的事物。那要如何区分动物类,植物类,人类呢?要区分具体的类要根据类的具体特征。看是不是符合某个类的特征。在JAVA中也是一样,JAVA中,类是指一些拥有共同属性特征的对象的集合。在安装玩jdk后会有一些内置的类不需要我们定义,可以通过引用对应的包使用对应的类对象。那什么是对象呢?对象指的是一些具体的物体,比如周杰伦呀,这个杯子,让人能够清楚知道的具体物体。在java中要使用某个类的方法、属性必须建立相应的类对象。
2.什么是面向对象、面向过程
从字面理解,面向就是面对,关注的意思,那么面向对象就是面对对象、关注对象,关注的重点在对象上,那么面向过程就是关注的重点在过程上。
3.在设计UI界面时,要了解一些必要的组件的应用,以及简单的布局
组件:按钮(JButton)标签(JLabel)文本框(JTexField)等等
布局:流动布局(FlowLayout)组件从左至右,从上至下排列,当行满了自动到下一行
边框布局(BorderLayout)窗体分为东南西北中五个部分,布局时指定相应的位置,默认为中。
绝对布局(null)通过指定固定的坐标位置实现组件排列。
等等
在设置好简单的UI界面后,点击按钮会没有反应,那是因为没有添加监听器。那什么是监听器呢?
4.什么是监听器?
监听器:监视器(监视一些事物的动作)
作用:用于监听窗体上一些组件的动作
使用方式:把一些逻辑(窗体关闭、窗体最小化、窗体移动、按钮点击等动作)通过事件的触发来执行
5.有哪些监听器?
Java当中,监听器有哪些?监听器的类如下:
从属包:java.awt.event包下
监听器:鼠标监听器:MouseListener MouseMotionListener
主要监听器的是鼠标的相关动作(按下、释放、点击、移动、拖动等等)
窗体拖动上、窗体关闭、最小化等等
事件监听器:ActionListener(监听事件有没有触发),用于按钮的事件监听。
键盘监听器: KeyListener
用于接收键盘事件(击键)。
6.简单的UI界面
LoginFrame.java
//引用包
import javax.swing.JFrame;import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.ImageIcon;import javax.swing.JTextField; import javax.swing.JCheckBox; import java.awt.event.MouseListener;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionListener;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JOptionPane;import java.awt.Point;public class LoginFrame{public static int x=0,y=0; public static void main(String[] args){ //1.创建窗体对象JFrame JFrame jf =new JFrame(); //设置窗体大小 jf.setSize(428,400); //设置窗体位置 jf.setLocationRelativeTo(null); //设置窗体默认关闭操作 jf.setDefaultCloseOperation(3); //去除当前窗体的默认标题栏 jf.setUndecorated(true); //设置窗体的布局,为边框布局 BorderLayout bl= new BorderLayout(); jf.setLayout(bl); //往窗体上添加一个面板 JPanel panel = new JPanel(); panel.setBackground(java.awt.Color.white); jf.add(panel,BorderLayout.CENTER); //设置panel的绝对布局 panel.setLayout(null); //在窗体上放置一个大图片 ImageIcon image1 = new ImageIcon("image/GIF.gif"); JLabel label = new JLabel(image1); jf.add(label,BorderLayout.NORTH); //在窗体底部添加各种组件 ImageIcon imageHead = new ImageIcon("image/head_log.jpg"); JLabel labelHead = new JLabel(imageHead); //设置图片的位置 labelHead.setBounds(50,30,80,80); panel.add(labelHead); //在下面的面板添加输入框 JTextField jtf1 = new JTextField(); JTextField jtf2 = new JTextField(); jtf1.setBounds(170,30,180,24); jtf2.setBounds(170,54,180,24); panel.add(jtf1); panel.add(jtf2); //添加复选框 JCheckBox box1 = new JCheckBox("记住密码"); JCheckBox box2 = new JCheckBox("自动登录"); box1.setBounds(170,80,80,23); box2.setBounds(260,80,80,23); panel.add(box1); panel.add(box2); //添加按钮 JButton button1 = new JButton("登录"); button1.setBackground(java.awt.Color.blue); button1.setForeground(java.awt.Color.white); button1.setBorderPainted(false); button1.setBounds(170,110,180,25); panel.add(button1); //添加label JLabel label1 = new JLabel("注册账号"); JLabel label2= new JLabel("找回密码"); label1.setForeground(java.awt.Color.blue); label2.setForeground(java.awt.Color.blue); label1.setBounds(350,30,100,25); label2.setBounds(350,54,100,25); panel.add(label1); panel.add(label2); //设置窗体可见 jf.setVisible(true); //添加事件监听 MouseListener mouse = new MouseListener(){ public void mouseClicked(MouseEvent e){ //实现窗体的点击动作(窗体关闭、最小化) //确认当前点击的位置(x,y) int x=e.getX(); int y=e.getY(); if(x>400&&y<20){ //关闭窗体 System.exit(0); }else if(x>370&&x<400&&y<20){ //设置窗体最小化到任务栏 jf.setExtendedState(1); }else if(x>340&&x<370&&y<20){ new HttpFrame(); //隐蔽登录窗体 jf.dispose(); } } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mousePressed(MouseEvent e){ x = e.getX(); y = e.getY(); } public void mouseReleased(MouseEvent e){} }; MouseMotionListener mouseMotion = new MouseMotionListener(){ public void mouseDragged(MouseEvent e){ int mouse_x = e.getX(); int mouse_y = e.getY(); //获取当前窗体的当前位置,jf来获取,得到一个点对象 Point point = jf.getLocation(); //获取当前点的x和y属性值 int frame_x = (int)point.getX(); int frame_y = (int)point.getY(); jf.setLocation(frame_x+mouse_x-x,frame_y+mouse_y-y); } public void mouseMoved(MouseEvent e){} }; ActionListener action = new ActionListener(){ public void actionPerformed(ActionEvent e){ //获取文本框的内容 String name = jtf1.getText(); String pwd = jtf2.getText(); if(name.equals("admin")&&pwd.equals("admin")){ //创建窗体对象JFrame JFrame chatFrame = new JFrame(); chatFrame.setSize(500,500); chatFrame.setDefaultCloseOperation(3); chatFrame.setVisible(true); //隐蔽登录窗体 jf.dispose(); }else{ //弹出提示框 JOptionPane.showMessageDialog(null,"登录失败"); } } }; label.addMouseListener(mouse); label.addMouseMotionListener(mouseMotion); button1.addActionListener(action); }}
HttpFrame.java设置为流体布局,显示较为杂乱
import javax.swing.*;import java.awt.*;public class HttpFrame{ HttpFrame(){ //1.创建窗体对象JFrame JFrame jf =new JFrame(); //构建需要的组件 JComboBox jcb1,jcb2,jcb3; //初始化 jcb1 = new JComboBox(); jcb1.addItem("不使用代理"); jcb1.addItem("Http代理"); jcb1.addItem("socks5代理"); jcb1.addItem("使用浏览器设置"); jcb2 = new JComboBox(); jcb2.addItem("不使用高级设置"); jcb2.addItem("UDP类型"); jcb2.addItem("TCP类型"); jcb3 = new JComboBox(); //添加组件 jf.setLayout(new FlowLayout()); jf.add(new JLabel("网络设置")); jf.add(new JLabel("类型:")); jf.add(jcb1); jf.add(new JLabel("地址:")); jf.add(new JTextField(8)); jf.add(new JLabel("端口:")); jf.add(new JTextField(4)); jf.add(new JLabel("用户名:")); jf.add(new JTextField(10)); jf.add(new JLabel("密码:")); jf.add(new JTextField(8)); jf.add(new JLabel("域:")); jf.add(new JTextField(4)); jf.add(new JButton("测试")); jf.add(new JLabel("登录服务器")); jf.add(new JLabel("类型:")); jf.add(jcb2); jf.add(new JLabel("地址:")); jf.add(jcb3); jf.add(new JLabel("端口:")); jf.add(new JTextField(4)); jf.add(new JButton("确定")); jf.add(new JButton("取消")); //设置窗体大小 jf.setSize(428,400); jf.setResizable(false); //设置窗体位置 jf.setLocationRelativeTo(null); //设置窗体默认关闭操作 jf.setDefaultCloseOperation(3); jf.setVisible(true); }}
- 高仿QQUI界面
- 仿QQUI实现(1)
- 高仿QQ2012界面
- 高仿淘宝界面
- 高仿QQ(登录界面)
- 高仿QQ(主界面)
- 高仿QQ2012登录界面
- 高仿qq聊天界面
- 高仿QQ界面(2)
- 高仿QQ主界面
- 待机界面如何高仿NOKIA N73
- 待机界面如何高仿NOKIA N73
- 待机界面如何高仿NOKIA N73
- 待机界面如何高仿NOKIA N73
- Android 高仿QQ 登陆界面
- Android 高仿QQ 界面滑动效果
- 高仿QQ电脑管家8 界面
- Android 高仿QQ 界面滑动效果
- 什么是存储过程
- 基于dba_hist_sqlstat查看sql语句的性能历史
- 第一个Spring-boot程序
- HC-05蓝牙模块的波特率修改
- openstack metadata运行机制
- 高仿QQUI界面
- 将运行信息打印日志到文件中
- HDFS架构
- Dreamweaver的功能操作
- 欢迎使用CSDN-markdown编辑器
- BZOJ2761 / JLOI2011 不重复的数【平衡树?哈希!】
- “我什么都不知道,我只知道caioj最强”
- 国产J2EE轻量级AJAX框架 Buffalo(布法罗)
- python常用的两个图像处理函数