面向对象编程和简单UI界面的实现

Java是一门面向对象编程的语音。那么什么是面向对象编程?首先在Java中有许多类,类是一些对象共同点的集合具有抽象性,对象就相当于生活中一个一个的实体。生活中的任何一件事情=对象(执行者)+过程(执行流程)。面向对象通俗的理解就是关注对象,关注的重点在对象身上。针对一件事情的发生,站在旁观者的角度上更加关注的是对象。面向过程则更加关注的是过程。

语法:先有类,再有对象

  一个类就是一个java文件

  类框架定义格式:public class 类名{ }

    定义属性的语法:public 属性类型  属性名;

  定义行为(方法、函数)的语法:public 返回类型  方法名(){}

行为分为三部分:条件(参数)+过程(大括号)+结果(返回值)

主函数:整个流程的驱动者(程序的入口),主函数可以放置到任何一个类文件里面,只是提供入口而已,不涉及到类的设计

创建对象的格式:类名 对象名 = new 类名();

 

面向对象编程三大特性:继承性、封装性、多态性

下面我们就做了一个简单的高仿qq登录界面代码如下:

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.Point;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;


public class LoginFrame{
public static int x=0,y=0;
public static void main(String[] args){
//1.先得有个窗体出来(创建一个窗体对象)JFrame
final JFrame jf = new JFrame();

//3.设置窗体大小
jf.setSize(428,400);


//4.设置窗体位置(屏幕居中)
jf.setLocationRelativeTo(null);


//5.设置窗体默认关闭操作
jf.setDefaultCloseOperation(3);


//去除当前窗体默认的标题栏
jf.setUndecorated(true);




//6.设置窗体的布局,为边框布局
BorderLayout bl = new BorderLayout();
jf.setLayout(bl);



//7.往窗体上放置一个面板
JPanel panel = new JPanel();
panel.setBackground(java.awt.Color.white);
jf.add(panel,BorderLayout.CENTER);
//设置panel的绝对布局
panel.setLayout(null);


//8.往窗体上边添加一个大图片
ImageIcon image = new ImageIcon("image/GIF.gif");
JLabel label = new JLabel(image);
jf.add(label,BorderLayout.NORTH);
          
               
                
        //9.往窗体底部添加各种组件
        ImageIcon imageHead = new ImageIcon("image/100.jpg");
        JLabel labelHead = new JLabel(imageHead);
        //设置标签图片的定位
        labelHead.setBounds(50,30,80,80);
        panel.add(labelHead);
             
                //10.往下面的面板添加输入框
               final JTextField jtf = new JTextField();
               jtf.setBounds(170,30,180,24);
               panel.add(jtf);
               JTextField jtf1 = new JTextField();
               jtf1.setBounds(170,54,180,24);
               panel.add(jtf1);
               //添加复选框
               JCheckBox box1 = new JCheckBox("记住密码");
               JCheckBox box2 = new JCheckBox("自动登录");
               box1.setBounds(170,84,93,19);
               box2.setBounds(258,84,93,19);
               panel.add(box1);
               panel.add(box2);
               JButton button = new JButton("登录");
               button.setBounds(148,122,155,30);
               panel.add(button);
               JLabel label1 = new JLabel("注册账号");
               JLabel label2 = new JLabel("找回密码");
               label1.setForeground(java.awt.Color.blue);
               label2.setForeground(java.awt.Color.blue);
               label1.setBounds(350,31,67,22);
               label2.setBounds(350,53,67,22);
               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);
}

public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
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 text = jtf.getText();
if("xqw".equals(text)){
//创建窗体
JFrame chat = new JFrame();
chat.setSize(50,50);
chat.setVisible(true);
chat.setDefaultCloseOperation(3);
//隐藏当前窗体
jf.dispose();
}else{
//弹出提示框
JOptionPane.showMessageDialog(null,"登录失败");
}
}  
};
label.addMouseListener(mouse);
label.addMouseMotionListener(mouseMotion);
button.addActionListener(action);


         }
}

上述代码中多次创建对象和导入Java类包,在窗体上用了BorderLayout布局,并在窗体上添加了面板Panel。随后为了实现界面中一些窗体关闭窗体最小化窗体拖动登录按钮的响应我们创建了一些监听器对象来完成这些功能。主要利用了MouseListener、MouseMotionListener和ActionListener这三个监听器来实现。初入Java,在写代码的过程中也遇到一些小问题。比如Java关键字的大小写,中英文符号,创建了对象没有加载相应对象的包等等。学习的路还很长,多积累经验教训,慢慢成长。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值