java学习日记---------------------------------对JFrame的操作

设置背景图片、添加音乐、监控键盘、 改变字体风格等等!

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.sound.sampled.*;

import javax.swing.*;

public class Password_Lock extends JFrame implements ActionListener{

    private JLabel label1,label2;
    private JTextField text_Login;
    private JPasswordField text_password;
    private JButton button_login,button_exit,button_q;
    private JPanel panel;

    //private Image image =  null ;
    private ImageIcon imageicon=new ImageIcon("D:/JAVA/Eclipse/Christmas_Eve/kulou.jpg");
    private JLabel label_background=new JLabel(imageicon);

    public Password_Lock(){
        super("密码锁");
        this.setLocation(0,0);
        this.setSize(imageicon.getIconWidth(), imageicon.getIconHeight());
        this.setUndecorated(true);//去windows修饰

       /* this.addKeyListener(new KeyAdapter(){//panel不识别,KeyListener需要焦点的, 如果你按了某个按钮之类的
        * (通常会使这个按钮获得焦点), 那他的父组件(例如这个panel)就无法捕获键盘事件了

            public void keyPressed(KeyEvent e){
                if(e.getKeyCode()==KeyEvent.VK_ESCAPE)
                    System.exit(0);
            }
        });*/

        init();
    }

public void init(){

        panel=new JPanel();
        this.add(panel,"Center");
        //this.setLayout(null);

        panel.setLayout(null);

        label1=new JLabel("用户名:");
        label1.setBounds(new Rectangle(580,455,90,50));
        label1.setFont(new Font("宋体",Font.BOLD,16));
        label1.setForeground(Color.green);
        panel.add(label1);

        text_Login=new JTextField(" 计算机131");
        text_Login.setEditable(false);
        text_Login.setFont(new Font("宋体",Font.BOLD,16));
        text_Login.setForeground(Color.red);
        text_Login.setBounds(new Rectangle(650,465,110,30));
        panel.add(text_Login);

        label2=new JLabel("  密码:");
        label2.setBounds(new Rectangle(580,495,90,60));
        label2.setFont(new Font("宋体",Font.BOLD,16));
        label2.setForeground(Color.green);
        panel.add(label2);

        text_password=new JPasswordField();
        text_password.setFont(new Font("宋体",Font.BOLD,30));
        text_password.setBounds(new Rectangle(650,510,110,30));
        panel.add(text_password);

        button_login=new JButton("确 定");
        button_login.setBounds(new Rectangle(570,565,90,30));
        button_login.setFont(new Font("宋体",Font.BOLD,16));
        button_login.setForeground(Color.RED);
        button_login.addActionListener(this);

        //this.addKeyListener(this);

        panel.add(button_login);

        button_exit=new JButton("重 置");
        button_exit.setBounds(new Rectangle(695,565,90,30));
        button_exit.setFont(new Font("宋体",Font.BOLD,16));

        panel.add(button_exit);
        button_exit.addActionListener( this);

        button_q=new JButton("退出");
        button_q.setBounds(new Rectangle(0,0,2,5));
        button_q.setBackground(Color.BLACK);
        panel.add(button_q);
        button_q.addActionListener(this);

        Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){//我去,老费劲了,加个键盘全局监听
            public void eventDispatched(AWTEvent e){
                if(((KeyEvent)e).getKeyChar()==KeyEvent.VK_ESCAPE){
                    System.exit(0);
                }
                if(((KeyEvent)e).getKeyChar()==KeyEvent.VK_ENTER){
                    test();
                }
            }
        },AWTEvent.KEY_EVENT_MASK);

        label_background.setBounds(new Rectangle(0,0,imageicon.getIconWidth(), imageicon.getIconHeight()));
        //this.getLayeredPane().add(label_background);

        this.getLayeredPane().add(label_background,new Integer(Integer.MIN_VALUE));//添加到JFrame的getLayeredPane层
        ((JPanel) this.getContentPane()).setOpaque(false);//透明
        panel.setOpaque(false);
        this.setVisible(true);

    }

public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

    if(e.getSource()==button_login){
        test();
    }
    else if(e.getSource()==button_q){
        System.exit(0);
    }
    else if(e.getSource()==button_exit){
        text_password.setText(null);
    }

}
public void test(){

    if(text_password.getText().equals("6472")){
        this.setVisible(false);
        new newFrame();
    }
    else {
        text_password.setText(null);
        JOptionPane.showMessageDialog(this, "密码输入有误,请重新输入");
    }

}

class newFrame extends JFrame implements ActionListener{

    private ImageIcon imageicon1=new ImageIcon("D:/JAVA/Eclipse/Christmas_Eve/平安夜.jpg");
    private JLabel label_background1=new JLabel(imageicon1);
    private JPanel panel_1=new JPanel();
    private JButton button_q=new JButton("退出");

    public newFrame(){

        super("你赢了!");
        this.setBounds(0, 0, imageicon1.getIconWidth(), imageicon1.getIconHeight());

        this.setUndecorated(true);
        panel_1.setLayout(null);
        this.getContentPane().add(panel_1);

        button_q.setBounds(new Rectangle(0,0,2,5));
        button_q.setBackground(Color.blue);
        panel_1.add(button_q);
        button_q.addActionListener(this);

        playMusic();//

        //this.getContentPane().add(label_background1);
        label_background1.setBounds(new Rectangle(0,0,imageicon.getIconWidth(), imageicon.getIconHeight()));
        this.getLayeredPane().add(label_background1,new Integer(Integer.MIN_VALUE));//添加到JFrame的getLayeredPane层
       ((JPanel) this.getContentPane()).setOpaque(false);//透明
        panel_1.setOpaque(false);

        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getSource()==button_q){
            System.exit(0);
        }
    }
}

public void playMusic(){

        URL cb = null;
        File f = new File("C:\\Users\\xiehe\\Music\\WAV\\12.wav"); //引号里面的是音乐文件所在的绝对鹿筋
        try {
            cb = f.toURL();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        AudioClip aau;
        aau = Applet.newAudioClip(cb);
        //aau.play();
        aau.loop();
        //循环播放 aau.play() 单曲 aau.stop()停止播放
}
public static void main(String[] args) {
        new Password_Lock();
    }
}

时间: 2024-10-26 03:41:20

java学习日记---------------------------------对JFrame的操作的相关文章

Java学习日记(一)基础

标识符: 由26个英文字母大小写,数字:0-9 符号:_ $ 组成 定义合法标识符规则: 1.数字不可以开头. 2.不可以使用关键字. 3.Java中严格区分大小写. Java中的注释格式: 单行注释: 格式: //注释文字 多行注释: 格式: /* 注释文字*/ 文档注释: 格式:/** 注释文字 */ 常量: 常量表示不能改变的数值. java中常量的分类: 1.整数常量.所有整数 2.小数常量.所有小数 3.布尔型常量.较为特有,只有两个数值.true 和false. 4.字符常量.将一个

java学习日记第一天

java 学习日记 第一天 java学习准备工作 首先环境配置:一个是jdk安装,另一个编译工具 eclipse ,安装下载教程网上很多 找了一个照着做就行 : 上述步骤完成,我们就可以打开eclipse进行我们第一个程序的编写啦当然是编写我们熟悉的helloWorld创建一个Java Perfect 目前好像基本都习惯用工程管理我们就建一个java工程然后点开工程在src右键new一个class,不用问这是啥这是啥,先把程序跑起来,慢慢就懂了我们在{}写我们的程序,这就好比helloworld

Java学习日记:Week1---day1-2 Java初识

前言: 新的旅程正式开始了,经过了两周的c语言预科班学习,对程序的开发有了第一步的认知.如今Java课程也如期开始,对于一个程序员究竟是先学习哪个语言好已经没有必要去探究了,如今既然上了Java的船自然要老老实实的走,能到什么程度就看自己了,个人对自己还是有点信心的. 课从昨天就正式开始了,昨天老师讲了一天大方面的东西,总之没什么具体内容,今天开始了初始java的第一课:简单理了理今天老师讲的内容,挑了一些重点的记在日记. 一.JAVA的版本以及JDK 1)Java的几个版本 java SE(j

java 学习日记---------简易学生信息管理系统

转眼间,开学六周过去了,我也学习java这么长时间了.在此国庆期间闲来无事,做个小系统玩玩. -------------student类封装----------- package StudentSystem; public class student extends user{ private int stuId; private String stuName; private String stuBirthday; public int getStuId() { return stuId; }

Java学习日记num10

学习内容:在javaIO中,比较重要的是五个类,一个接口.五个类是 Reaer, Writer,InputStream,  OutputStream,File(前四个类是抽象类,最后一个非抽象),接口是  Serializable.其他流对象. 一,字符流和字节流 IO流用来处理设备之间的数据传输,java对数据的操作时通过流的方式,java用于操作流的对象都在IO包中. 字符流是基于字节流的,字符流里面融合了字符编码表,所以字符流一般操作纯文本数据,而字节流可以操作所有的数据.字符流的两个基类

Java学习日记num13

学习内容:GUI概述:容器和组件:布局管理器:事件监听:MENU菜单:JAR包双击执行 一.GUI概述 >Graphical User Interface(图形用户接口). >用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI >Command line User Interface (命令行用户接口)Java为GUI提供的对象都存放在java.awt和javax.swing. Awt和Swing java.awt: Abstract Window Tookit (抽象窗口

java学习日记

我自己是学前端的,个人认为,如果一个前端连一个后台语言都不曾了解过,在工作中可能会和后台掐架,抱着这种心态来自己学学java,在这几天看过的书和视频来看,很多java当中的语法和js有很多相似之处,就比如说关键字:if,for之类的,可以说是编程语言当中最常见而且最常使用,使用方式也是相同的几个关键字了.经过两天的学习,了解了java和js的不同之处: 取值的方式不同,在js中找到input节点.value就能轻松取值,但是在java中,要取值首先要导入一个包"Scanner",创建&

超级小白Java学习日记(1)

作为一名初级财务人员,在生完孩子再次步入职场后,更深刻的认识到自己的不足.拥有的财务知识无论是深度还是广度,都对职业发展益处不大.对自己进行了浅薄的剖析,认为我的兴趣.性格都不适合做财务.所以想开发一项技能,能提高职场竞争力,找到兴趣点. 自我介绍 29岁财务女,新晋宝妈,生了孩子之后像重活一场.看到身边小小的可人儿,他全心全意的依赖着我,可是我却不敢面对他.因为我觉得我没有优点值得他学习,我不敢在他长大后站在他面前,说我是妈妈,妈妈是对的,你要听妈妈的. 都说"为母则刚",如果这个&

Java学习日记num7

学习内容:异常体系:一个经典的异常处理例子:包 一.异常体系 1,异常概念 异常是对问题的描述,根据java的面向对象思想将问题进行对象的封装 2,异常体系 异常的大哥是Throwable,下面有两个小弟分别是Error和Exception.对于Error是一种严重的错误,一般不编写针对性的代码对其进行处理.另外一种是Exception,非严重性的错误,一般要编写针对性的处理代码.在Exception的小大哥下,还有一个小弟弟RuntimeExceptin(运行时异常),这个小异常体系中的异常,