不算是完整的代码,便于自己理解的写法。
import java.awt.Container;
import java.awt.FlowLayout;
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;
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列 自动间距
*/
* 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){
* ...;})
*/
//下面是一个监听器类的实现 用的内部类
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button)
System.out.println(e.getActionCommand());
}
}
/*
* 基本操作
*/
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
事件模型: 用户 --> 组件 --> 动作 --> 事件 对象 --> 事件监听器--> 事件处理方法