Java学习笔记四(可视化的基基基基础)
不算是完整的代码,便于自己理解的写法。
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class GUIDemo extends JFrame {
private JLabel label1;
private JButton button;
public GUIDemo() {
Container container = getContentPane(); //初始化一个容器,可以添加控件了
/*
* 界面布局相关
* FlowLayout 顺序布局
* BorderLayout 边界布局
* GridLayout 网格布局
*/
/*
* FlowLayout 顺序布局
* container.setLayout(new FlowLayout()); 按顺序铺排
*/
/*
* BordeLayout 边界布局
* container.add(button[0],BorderLayout.NORTH); 将按钮设置在东、南、西、北、中区
* container.add(button[1],BorderLayout.SOUTH);
* container.add(button[2],BorderLayout.EAST);
* WEST CENTER
*/
/*
* GirdLayout 网格布局
* private GridLayout grid1;
* grid1 = new GirdLayout(2,4,5,5); 2行4列 水平、垂直间距为5
* grid1 = new GirdLayout(2,4); 2行4列 自动间距
* container.setLayout(grid1);
*/
/*
* JLabel标签
*/
container.add(label1);
label1 = new JLabel("标签的名字");
label1.setHorizontalAlignment(SwingConstants.CENTER); //设置位置
label1.setVerticalAlignment(SwingConstants.BOTTOM); //TOP顶部 LEFT 左边 RIGHT右边
/*
* JButton按钮
*/
container.add(button);
button = new JButton("按钮的名字");
button.addActionListener(this);
}
/*
* 图标Icon
*/
Icon bug = new ImageIcon("img.jpg");
label1 = new JLabel("图片",bug.SwingConstants.LEFT); //将label设置在图片的右边
}
/*
* 监听方法
* 只有实现了监听器接口的类才是监听器
* 事件处理过程中涉及三类对象:事件对象、事件源(单机一个按钮)、事件监听器(处理事件)
* 编写事件处理程序的步骤:
* (1)定义监听器类,在类的定义中完成事件的处理(实现actionPerformed方法)
* (2)通过new创建事件监听器对象
* (3)为组件注册相应的事件监听器 add****Listener
* 三种方式 :
* (1)直接实现:在图形界面的类中实现接口 addActionListener()括号中可以直接写this
* (2)内部类方式:在图形界面类内部实现另一个监听器类 addActionListener(new 内部类())
* (3)匿名内部类方式 : addActionListener(new ActionListener(){
* public void actionPerformed(ActionEvent e){
* ...;})
*/
//下面是一个监听器类的实现 用的内部类
class JianTingLei implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button)
System.out.println(e.getActionCommand());
}
}
/*
* 基本操作
*/
public static void main(String[] args) {
JFrame frame = new JFrame("框的名称");
frame.setSize(400,400);
frame.setVisible(true);}
}
容器类: JFrame JApplet JDialog JPanel
组件类: JButton JTextField JTextArea JComboBox JList JRdioButton JMenu
辅助类: Graphics Color Font FontMetrics Dimension LayoutManager
事件模型: 用户 --> 组件 --> 动作 --> 事件 对象 --> 事件监听器--> 事件处理方法
Java学习笔记四(可视化的基基基基础)相关推荐
- 【Java学习笔记四】Java中的包
包的声明和引入:在Java语言系统中,Java编译器为每一个类生成一个字节码文件(.class),为了对类文件进行分层和按用途分类管理,同时也为了解决相同类名的文件冲突的问题,Java提供了包机制来管 ...
- JAVA学习笔记(四十九)- Swing相关组件
JFrame组件 import java.awt.Color;import javax.swing.JFrame; import javax.swing.JPanel;/** Swing是在AWT基础 ...
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
***对象作为参数传递*** class passparam { int x; public static void main(String[] args) { passparam obj = ...
- Java学习笔记四:static关键字
1.static表示什么? static表示"全局"或者"静态"的意思.在Java中没有全局变量的概念,static 可以简单的理解为全局的,独立的一个功能. ...
- java学习笔记四:正则表达式
今天接触了正则表达式,我们在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就可以很好地描述这些规则.换句话说,正则表达式就是记录文本规则的代码. 现在用一个实例来 ...
- Java学习笔记-全栈-web开发-02-css必备基础
说明: 如果您是后端开发人员,实际上这章只需要知道个大概即可,一般来说美化工作不需要我们完成. 但更多情况下,我们得能看懂这些css是如何美化的,美化的结果是什么. 因此,后端开发人员不必深入学习. ...
- GIT学习笔记(5):变基
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...
- JAVA学习笔记(四)城堡游戏
城堡游戏 我们在尝试了之前的简单媒体库构造之后,试着整合一下之前学到的关于类,继承,多态等知识,制作一个简单的城堡游戏,城堡游戏是一个简单的文字游戏,通过输入命令可以在地图上不同的房间进行移动. 目录 ...
- Java学习笔记(四)——接口
Java学习笔记(四)--接口 1.格式 2.接口的特点 3.接口举例 1.格式 接口:初期理解,可以认为是一个特殊的抽象类.当抽象类中的方法都是抽象的,那么该类 可以通过接口的方式来表示. clas ...
最新文章
- Android开发之带你轻松集成友盟统计
- mysql5.7.20非安装版_mysql5.7.20\5.7.21免安装版安装配置教程
- 网络——Cisco Packet Tracer 思科模拟器组网实验
- apache2 配置php,Windows配置PHP5与Apache2
- 开源中国 2014 年源创会年度计划
- (15)FPGA模块化设计原则
- java怎么把毫秒转换成天数_关于java:如何将毫秒转换为“ hh:mm:ss”格式?
- 使用checked关键字处理“溢出”错误
- 聊一聊大火的对比学习
- XP开通局域网共享(访问本机无需验证即可进入)
- Java高级进阶学习资料!Java虚拟机的垃圾回收机制
- [leetcode]5341. 最后 K 个数的乘积
- 硬纪元AI峰会前瞻:线下大数据驱动下的新零售,目标是精准营销
- 【转载】程序员面对下列技术问题,如何做决策
- Raki的读paper小记:A Concise Model for Multi-Criteria Chinese Word Segmentation with Transformer Encoder
- 凸二次规划解法(旋转法)——补充代码
- S-PTAM:Stereo Parallel Tracking and Mapping论文笔记
- windows7内存诊断工具有用吗_WIN7 自带的内存检测工具怎么用
- 免费苹果账号(apple id)申请ios证书p12真机调试
- 100个python算法超详细讲解:掷骰子