Swing常用事件

1.Java Swing中处理事件的一般步骤是:

(1)新建一个组件(JButton)
(2)将该组件添加到面板中(JPanel)
(3)注册监听器以监听事件源产生的事件(如ActionListener来响应客户点击按钮事件)
(4)定义处理事件的方法(如在ActionLinstener中的actionPerform中定义响应的方法) 以上步骤我们可以用多种方法实现,用的最多的是第二种 第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;
第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。
package jf;

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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField; public class Tets extends JFrame{ JButton btn;
JPanel panel;
JTextField text; private static final String TIP = "QQ号码/手机/邮箱"; //初始化窗口
public void init(){
this.setTitle("Test");
this.setSize(300,300);
this.setLocationRelativeTo(null); this.setResizable(true); } //构造方法
public Tets() {
init();
text = new JTextField("qq",20); btn = new JButton("提交");
btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { //点击弹框显示
JOptionPane.showMessageDialog(null, "提交失败");
System.out.println("hhhh");
}
}); this.getContentPane().setLayout(new FlowLayout());
this.getContentPane().add(text);
this.getContentPane().add(btn);
this.setVisible(true);
} public static void main(String[] args) {
new Tets();
}
}

2.ActionListener(按钮点击事件)



在文本框里面显示隐式字符

package jf;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField; public class Hint extends JFrame implements MouseListener
{
private static final long serialVersionUID = 1L;
private static final String TIP = "QQ号码/手机/邮箱"; public Hint ()
{
setTitle ("test");
setLayout (new BorderLayout ());
final JTextField tf = new JTextField (TIP);
tf.setName ("tf");
tf.setForeground (Color.gray);
tf.setLocation (0, 0);
tf.setSize (100, 30);
tf.addMouseListener (this); JPanel panel = new JPanel ();
panel.setName ("panel");
panel.addMouseListener (this);
panel.setLayout (null);
panel.add (tf);
panel.setFocusable (true);
add (panel);
setSize (300, 300);
setLocationRelativeTo (null);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setVisible (true);
} public static void main ( String[] args )
{
new Hint ();
} public void mouseClicked ( MouseEvent e )
{
Component component = e.getComponent ();
String name = component.getName ();
if (e.getButton () == MouseEvent.BUTTON1)
{
if ("tf".equals (name))
{
JTextField tf = (JTextField) component;
if (TIP.equals (tf.getText ()))
{
tf.setText ("");
}
}
else if ("panel".equals (name))
{
JTextField tf = (JTextField) ( (JPanel) component ).getComponents ()[0];
if ("".equals (tf.getText ()))
{
tf.setText (TIP);
}
}
}
} public void mousePressed ( MouseEvent e )
{} public void mouseReleased ( MouseEvent e )
{} public void mouseEntered ( MouseEvent e )
{} public void mouseExited ( MouseEvent e )
{}
}

密码

JTextField textField = new JTextField("密码");
textField.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
if (textField.getText().isEmpty()){
textField.setText("密码");
}
}
});

2018.4.27 Java的Swing常用事件的更多相关文章

  1. 2018.4.27 java容器

    一.容器的概念 在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 二.容器与数组的关系 之所以需要 ...

  2. 基于java平台的常用资源整理

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  3. 这里整理了基于java平台的常用资源

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  4. JAVA简单Swing图形界面应用演示样例

    JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...

  5. 【jQuery】(4)---jQuery常用事件

    [jQuery入门](4)---jQuery常用事件 一.常用事件列表 1.blur() 当失去焦点时触发.包括鼠标点击离开和TAB键离开. 2.change() 当元素获取焦点后,值改变失去焦点事触 ...

  6. JAVA程序员常用英语

    JAVA程序员常用英语 干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这 ...

  7. Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. <!-- https://mvnrepository.com/artifact/org.apache.commons/com ...

  8. 2018年最新Java面试题及答案整理(持续完善中…)

    2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...

  9. WebView使用详解(二)——WebViewClient与常用事件监听

      登录|注册     关闭 启舰 当乌龟有了梦想……       目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8 ...

随机推荐

  1. UVa 10213 How Many Pieces of Land ? (计算几何+大数)欧拉定理

    题意:一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 析:这个题用的是欧拉公式,在平面图中,V-E+F=2,其中V是顶点数,E是边数,F是面数.对于这个题只要计算V和E就好. ...

  2. JVM内存GC的骗局

    此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 概述 在日常程序开发中,很多JAVA程度员不太关心内存的使用情况.当然,如果程序员运气较好或者系统没有大规模 ...

  3. [UE4]如何替换角色Mesh上的Material材质

    http://www.dawnarc.com/2016/10/ue4%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E8%A7%92%E8%89%B2mesh%E4%B8%8 ...

  4. poj1837 Balance

    Balance  POJ - 1837 题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数. 其中可以把天枰看做一个以x轴0点 ...

  5. Node.js 内置模块fs的readdir方法 查看某个文件夹里面包含的文件内容

    fs.readdir(path[, options], callback) 例: "use strict"; const fs = require("fs"); ...

  6. 阿里云服务器新手安装nginx

    1.域名购买之后 备案. 2.购买服务器. 3.这两个条件具备之后进行下一步. 本人使用Mac ,实践流程按照Mac本的流程操作. 作为初学者,简配的服务器, 实例类型: I/O优化,操作系统: Ce ...

  7. layui实现下拉分类多级

    Layui tree 下拉菜单树   1.效果: 2.html  代码: <!DOCTYPE html> <html> <head> <meta charse ...

  8. nginx 第二课

    基本配置格式 Nginx全局配置参数 使用include文件 HTTP的server部分 虚拟服务器部分 location —— where,when,how. mail的server部分. 完整的示 ...

  9. F.Cards with Numbers

    链接:https://ac.nowcoder.com/acm/contest/908/F 题意: AFei has many cards. Each card has a number written ...

  10. Yii2.0权限系统,使用PhpManager的方式

    网上搜了一大堆yii2.0权限系统,大抵都是千篇一律,而且基本上都是DbManager.看了半天官方文档之后,终于知道了PhpManager的方式下,是怎么引入权限系统.介绍下我自己的使用.首先,配置 ...