界面
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 r=new RanDom();
Int d=r.nextInt();
分享到:
相关推荐
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...
在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - 面向对象编程(Object-Oriented Programming, OOP):Java是一种纯面向对象的语言,一切皆为对象,理解类、对象、封装、继承、多态等...
【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...
《Core Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...
《CoreJava上下册》是Java编程领域中备受推崇的入门教程,主要...无论你是Java新手还是希望巩固基础的开发者,《CoreJava上下册》都是不可或缺的学习资源。通过系统学习,你将能够独立编写出高效、健壮的Java应用程序。
《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...
通过学习《Core Java 8h》,读者可以全面掌握Java编程的基本技能,并能进一步理解高级特性和实践,为成为一名专业的Java开发者奠定坚实的基础。同时,附带的CHM帮助文档提供了详细的索引和搜索功能,有助于读者在...
"Core Java 2nd Edition, Volume I & Volume II's Code" 提供了全面深入的学习资源,帮助开发者更好地理解和掌握Java的核心概念。这个压缩包包含两个部分:v1和v2,分别对应《核心Java 2nd Edition》的第一卷和第二...
在"CoreJava这swing"这个学习案例中,我们将会深入探讨Swing库中的一些核心组件和API,这些都是构建Java桌面应用程序的基础。 Swing提供了一套丰富的组件,包括按钮、文本框、标签、滚动面板、菜单、对话框等,这些...
【标题】"JAVA 学习记录一CoreJava.rar" 是一个关于 Java 编程语言的基础教程,主要聚焦在 Core Java 部分。这个压缩包包含了一份 PDF 文档,提供了对 Java 核心概念的详细讲解。 【描述】中重复的 "JAVA 学习记录...
《Core Java 2》是Java编程领域的一本经典著作,主要涵盖了Java语言的核心特性与应用。这份源码包包含了书中所有示例代码,是深入理解Java编程的重要资源。以下是基于这个源码包可以学习到的一些关键知识点: 1. **...
8. **GUI编程**:Java提供Swing和JavaFX库来创建图形用户界面,学习如何设计和实现交互式的桌面应用。 9. **Oracle数据库**:Oracle是一种常用的商业关系型数据库管理系统,学习SQL语法、表设计、事务处理和性能...
这两卷书籍共同构建了一个全面的Java学习体系,无论你是初学者还是有经验的开发者,都能从中受益匪浅。通过学习《Core Java》,你不仅可以掌握Java语言的核心知识,还能了解其在实际开发中的应用,为成为专业的Java...
《CoreJava_Bank》项目是基于Java核心技术实现的一个...通过对《CoreJava_Bank》项目的深入学习和实践,开发者不仅可以掌握Java的核心技术,还能提升对实际业务逻辑的理解,为将来开发更复杂的金融系统打下坚实基础。
以上内容是“CoreJava代码”这个主题中可能涵盖的Java基础知识,通过学习和实践,初学者可以逐步掌握Java编程技能,为进一步深入学习Java EE(企业版)和Android开发打下坚实的基础。在"codejava"这个文件夹中,你...
《Core Java (9th Edition)》是Java编程领域的一本权威教材,分为基础...通过学习这两卷,开发者将全面掌握Java语言的基础和高级特性,能够编写高效、可维护的Java程序,并为后续学习Java框架和其他技术打下坚实基础。
Core Java 是学习 Java 编程的基础,它包含了 Java 编程的核心概念和技术。本文将深入探讨 Core Java 的基本知识,适合初学者作为入门指南。 #### 二、Java 核心概念与基础知识 ##### 1. 标识符与关键字 - **...
《CoreJava核心 源码》是一本深入探讨Java编程语言的权威著作,它涵盖了Java语言的各个方面,从基础语法到高级特性,旨在帮助开发者深入理解Java的核心概念和技术。源码部分更是为学习者提供了实践和探索的宝贵资料...