`

corejava学习6(界面)

阅读更多

 

界面

1  选择容器

2  设置布局管理器

3  添加组件

4  设置事件监听

 

 

 

Jframe    窗体     一个容器

 

Jpanel    面板    一个组件

 

可见性须最后设置,因为不这样你后面加的组件看不见。

 

FlowLayout 流式布局      它是jpanle  默认布局

 

BorderLayout  边界布局       它是jframe   默认布局

 

GridLayout  网络布局      

 

CardLayout  卡片布局

 

GridBagLayout 复杂网格布局

 

 

 

 

AWT事件模型

 

事件对象:一个事件是一个对象

事件源:发生事件的对象,报告的事件的对象。

事件监听器:

 

 

事件源预先就某种事件注册监听器,当事件发生时,事件源就给注册的监听器发送一个事件对象,由监听器作出处理。

 

事件源可以同时是多种事件的事件源,就某种事件单独注册监听器。

 

事件源就同一种事件,可以注册多个监听器。

 

一个监听器可以同时注册在多个事件源当中。

 

事件对象中会封装事件源对象。

事件监听接口中的每一个方法,都应以对应的事件对象作为参数。

 

所谓的事件源给监听器发送事件对象,其实就是,事件源以事件对象为参数,

 

监听器注册在事件源中。

 

import java.util.*;

public class TestGirl {

    public static void main(String[] args) {

           Girl g=new Girl("Luxw");

           EmotionListener l1=new GoodBoy("Huxz");

           EmotionListener l2=new BadBoy("Liucy");

           g.addEmotionListener(l1);

           g.addEmotionListener(l2);

           g.fire();

           g.removeEmotionListener(l2);

           g.fire();

           g.removeEmotionListener(l1);

           g.fire();

    }

}

class EmotionEvent extends EventObject{

    public EmotionEvent(Object source){

           super(source);

    }

}

interface EmotionListener extends EventListener{

    void whatCanIdoWhenGirlHappy(EmotionEvent e);

    void whatCanIdoWhenGirlSad(EmotionEvent e);

}

class Girl{

    String girlName;

    //element: EmotionListener

    List bfs=new ArrayList();

    public Girl(String girlName){

           this.girlName=girlName;

    }

    public String getGirlName(){

           return this.girlName;

    }

    public void addEmotionListener(EmotionListener l){

           bfs.add(l);

    }

    public void removeEmotionListener(EmotionListener l){

           bfs.remove(l);

    }

    public void fire(){

           System.out.println();

           EmotionEvent e=new EmotionEvent(this);

           for(int day=1;day<=6;day++){

                  System.out.println("Day "+day+" : ");

                  if (day%2==1)

                         System.out.println(girlName+" :今天我不爽");

                  else System.out.println(girlName+" :今天我很爽");

                 

                  for(int i=0;i<bfs.size();i++){

                         EmotionListener l=(EmotionListener)bfs.get(i);

                         if (day%2==1){

                                l.whatCanIdoWhenGirlSad(e);

                         }

                         else{

                                l.whatCanIdoWhenGirlHappy(e);

                         }

                  }

           }

    }

}

 

class GoodBoy implements EmotionListener{

    String boyName;

    public GoodBoy(String boyName){

           this.boyName=boyName;

    }

    public void whatCanIdoWhenGirlHappy(EmotionEvent e) {

           Girl g=(Girl)e.getSource();

           String gn=g.getGirlName();

           System.out.println(boyName+" : "+gn+", 你爽我也爽");

    }

    public void whatCanIdoWhenGirlSad(EmotionEvent e) {

           Girl g=(Girl)e.getSource();

           String gn=g.getGirlName();

           System.out.println(boyName+" : "+gn+", 你不爽我也不爽");

    }

}

 

class BadBoy implements EmotionListener{

    String boyName;

    public BadBoy(String boyName){

           this.boyName=boyName;

    }

    public void whatCanIdoWhenGirlHappy(EmotionEvent e) {

           Girl g=(Girl)e.getSource();

           String gn=g.getGirlName();

           System.out.println(boyName+" : "+gn+", 你爽我就让你不爽");

    }

    public void whatCanIdoWhenGirlSad(EmotionEvent e) {

           Girl g=(Girl)e.getSource();

           String gn=g.getGirlName();

           System.out.println(boyName+" : "+gn+", 你不爽我就很爽");

    }

   

}

结果:

 

Day 1 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Liucy : Luxw, 你不爽我就很爽

Day 2 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

Liucy : Luxw, 你爽我就让你不爽

Day 3 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Liucy : Luxw, 你不爽我就很爽

Day 4 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

Liucy : Luxw, 你爽我就让你不爽

Day 5 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Liucy : Luxw, 你不爽我就很爽

Day 6 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

Liucy : Luxw, 你爽我就让你不爽

 

Day 1 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Day 2 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

Day 3 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Day 4 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

Day 5 :

Luxw :今天我不爽

Huxz : Luxw, 你不爽我也不爽

Day 6 :

Luxw :今天我很爽

Huxz : Luxw, 你爽我也爽

 

Day 1 :

Luxw :今天我不爽

Day 2 :

Luxw :今天我很爽

Day 3 :

Luxw :今天我不爽

Day 4 :

Luxw :今天我很爽

Day 5 :

Luxw :今天我不爽

Day 6 :

Luxw :今天我很爽

 

 

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class TestActionListener {

    public static void main(String[] args) {

           JFrame f=new JFrame("hehe");

           f.setSize(400,120);

           f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           f.setLayout(new FlowLayout());

           JButton b=new JButton("BUTTON");

           JTextField jtf=new JTextField(15);

           f.add(b);

           f.add(jtf);

           f.setVisible(true);

          

           ActionListener l=new ActionListener(){

                  public void actionPerformed(ActionEvent arg0) {

                         System.out.println("Action!");

                  }

           };

          

           b.addActionListener(l);

           jtf.addActionListener(l);

    }

}

 

产生随机数

 

Random  rnew  RanDom();

Int dr.nextInt();

 

分享到:
评论

相关推荐

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    corejava学习笔记

    Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...

    java\CoreJava笔记\CoreJAVA_day01

    在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - 面向对象编程(Object-Oriented Programming, OOP):Java是一种纯面向对象的语言,一切皆为对象,理解类、对象、封装、继承、多态等...

    corejava,java核心编程

    【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...

    core java1&2

    《Core Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...

    CoreJava上下册

    《CoreJava上下册》是Java编程领域中备受推崇的入门教程,主要...无论你是Java新手还是希望巩固基础的开发者,《CoreJava上下册》都是不可或缺的学习资源。通过系统学习,你将能够独立编写出高效、健壮的Java应用程序。

    Core Java.JAVA核心技术(中文版)

    《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...

    Corejava8h

    通过学习《Core Java 8h》,读者可以全面掌握Java编程的基本技能,并能进一步理解高级特性和实践,为成为一名专业的Java开发者奠定坚实的基础。同时,附带的CHM帮助文档提供了详细的索引和搜索功能,有助于读者在...

    core java source code

    "Core Java 2nd Edition, Volume I & Volume II's Code" 提供了全面深入的学习资源,帮助开发者更好地理解和掌握Java的核心概念。这个压缩包包含两个部分:v1和v2,分别对应《核心Java 2nd Edition》的第一卷和第二...

    CoreJava这swing

    在"CoreJava这swing"这个学习案例中,我们将会深入探讨Swing库中的一些核心组件和API,这些都是构建Java桌面应用程序的基础。 Swing提供了一套丰富的组件,包括按钮、文本框、标签、滚动面板、菜单、对话框等,这些...

    JAVA 学习记录一CoreJava.rar

    【标题】"JAVA 学习记录一CoreJava.rar" 是一个关于 Java 编程语言的基础教程,主要聚焦在 Core Java 部分。这个压缩包包含了一份 PDF 文档,提供了对 Java 核心概念的详细讲解。 【描述】中重复的 "JAVA 学习记录...

    core java 2 全部源码

    《Core Java 2》是Java编程领域的一本经典著作,主要涵盖了Java语言的核心特性与应用。这份源码包包含了书中所有示例代码,是深入理解Java编程的重要资源。以下是基于这个源码包可以学习到的一些关键知识点: 1. **...

    corejava的学习笔记

    8. **GUI编程**:Java提供Swing和JavaFX库来创建图形用户界面,学习如何设计和实现交互式的桌面应用。 9. **Oracle数据库**:Oracle是一种常用的商业关系型数据库管理系统,学习SQL语法、表设计、事务处理和性能...

    Core Java 第11版 英文版 第一卷+第二卷

    这两卷书籍共同构建了一个全面的Java学习体系,无论你是初学者还是有经验的开发者,都能从中受益匪浅。通过学习《Core Java》,你不仅可以掌握Java语言的核心知识,还能了解其在实际开发中的应用,为成为专业的Java...

    CoreJava_Bank

    《CoreJava_Bank》项目是基于Java核心技术实现的一个...通过对《CoreJava_Bank》项目的深入学习和实践,开发者不仅可以掌握Java的核心技术,还能提升对实际业务逻辑的理解,为将来开发更复杂的金融系统打下坚实基础。

    corejava代码

    以上内容是“CoreJava代码”这个主题中可能涵盖的Java基础知识,通过学习和实践,初学者可以逐步掌握Java编程技能,为进一步深入学习Java EE(企业版)和Android开发打下坚实的基础。在"codejava"这个文件夹中,你...

    Core Java (9th Edition)

    《Core Java (9th Edition)》是Java编程领域的一本权威教材,分为基础...通过学习这两卷,开发者将全面掌握Java语言的基础和高级特性,能够编写高效、可维护的Java程序,并为后续学习Java框架和其他技术打下坚实基础。

    Core Java Java的基本知识

    Core Java 是学习 Java 编程的基础,它包含了 Java 编程的核心概念和技术。本文将深入探讨 Core Java 的基本知识,适合初学者作为入门指南。 #### 二、Java 核心概念与基础知识 ##### 1. 标识符与关键字 - **...

    CoreJava核心 源码

    《CoreJava核心 源码》是一本深入探讨Java编程语言的权威著作,它涵盖了Java语言的各个方面,从基础语法到高级特性,旨在帮助开发者深入理解Java的核心概念和技术。源码部分更是为学习者提供了实践和探索的宝贵资料...

Global site tag (gtag.js) - Google Analytics