热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVA第二次作业展示与学习心得

在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来。具体的使用方法和其他得组件并没有什么大的不

在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来。具体的使用方法和其他得组件并没有什么大的不同。
另外我通过查阅资料使用了一种新的布局方式------网格包布局.网格包布局管理是最复杂和灵活的布局管理,与网格布局管理器不同的是,网格包布局管理器允许容器中各个组件的大小各不相同,还允许组件跨越多个网格,也允许组件之间相互部分重叠。网格包布局理解为网格单元布局更合理,因为一个容器被划分为若干个网格单元,而每个组件放置在一个或多个网格单元中。要注意的是,网格包布局不能指定一个容器的网格单元的大小其网格单元的划分是通过weightx和weighty参数来设置的,但也不是直接指定其网格单元的大小。当把一个组件放置在网格单元中时,组件所占据的位置和大小是由一组与他们相关联的约束来决定的。这些约束是由GridBagConstraints类型的对象来设置的。
程序源代码:
import java.awt.;
import javax.swing.
;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

public class emailx extends JFrame {
private Checkbox rem_pwd;
private Checkbox not_show;
private Container c;
private ActionEvent e;
private ActionListener myActionLis;
private JButton loginBut;
private JButton exitBut;
private JButton register;
private JLabel label;// 标签
private JLabel label2;
private JLabel no_use;
private JPanel rem_not_show;
private JPanel log_cancel;
private JPasswordField password;// 密码框
private JTextField usernametext;// 文本框
// 按钮
public emailx() {
rem_not_show = new JPanel();//用于装记住密码与隐身的两个对象
log_cancel = new JPanel();//用于装登陆和取消的两个对象
rem_pwd = new Checkbox("记住密码");
not_show = new Checkbox("隐身登陆");
/网格包布局是这种,可以达到效果/
GridBagLayout gblayout = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
setTitle("邮箱登陆界面");
// 窗口的主容器
final Container c = getContentPane();
c.setLayout(gblayout); // 让容器采用空布局
c.setBackground(Color.BLUE);
constraints.weightx = 0;
constraints.weighty = 0;
constraints.gridx = 1;

label = new JLabel("账号:",JLabel.CENTER);gblayout.setConstraints(label, constraints);c.add(label);constraints.gridx = 2;usernametext = new JTextField(10);gblayout.setConstraints(usernametext, constraints);c.add(usernametext);constraints.gridx = 3;register = new JButton("注册");gblayout.setConstraints(register, constraints);c.add(register);constraints.gridx = 1;constraints.gridy = 2;label2 = new JLabel("密码:",JLabel.CENTER);gblayout.setConstraints(label2, constraints);c.add(label2);constraints.gridx = 2;password = new JPasswordField(10);gblayout.setConstraints(password, constraints);c.add(password);constraints.gridx = 2;constraints.gridy = 3;rem_not_show.add(rem_pwd);rem_not_show.add(not_show);rem_not_show.setBackground(c.getBackground());gblayout.setConstraints(rem_not_show, constraints);c.add(rem_not_show);exitBut = new JButton();exitBut.setText("删除");// 设置按钮值loginBut = new JButton("进入"); // 实例化组件log_cancel.add(loginBut);log_cancel.add(exitBut);constraints.gridx = 2;constraints.gridy = 4;gblayout.setConstraints(log_cancel, constraints);log_cancel.setBackground(c.getBackground());c.add(log_cancel);loginBut.setToolTipText("进入请点击该按钮!");// 给按钮注册监听器final myActionLis lis = new myActionLis();loginBut.addActionListener(lis);setSize(400, 300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(final String[] args) {new emailx();
}class myActionLis implements ActionListener {public void actionPerformed(final ActionEvent e) {// 获取文本框或者密码框的值(内容)final String name = usernametext.getText();final String pwd = password.getText();if (name.equals("") || pwd.equals("")) {// 弹出提示框JOptionPane.showMessageDialog(null, "账号或者密码不能为空!");} else {if (name.equals("123456789@qq.com") && pwd.equals("123456789")) {JOptionPane.showMessageDialog(null, "恭喜您!登录成功!");} else {JOptionPane.showMessageDialog(null, "账号或者密码错误!请重新输入!");}}}}

}
程序运行效果:
902751-20160322164127526-514750447.png
902751-20160322164143620-915452508.png
902751-20160322165252573-673018657.jpg

转:https://www.cnblogs.com/slf520/p/5304269.html



推荐阅读
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 本文详细介绍了 jQuery 的入门知识与实战应用,首先讲解了如何引入 jQuery 库及入口函数的使用方法,为初学者提供了清晰的操作指南。此外,还深入探讨了 jQuery 在实际项目中的多种应用场景,包括 DOM 操作、事件处理和 AJAX 请求等,帮助读者全面掌握 jQuery 的核心功能与技巧。 ... [详细]
  • 优化升级版数据采集与赋值方法,专为前文内容设计
    在前一篇文章中,方法的局限性主要体现在需要传递参数,并且参数数量受限。当页面布局与所需参数不匹配时,该方法将无法正常工作。为此,我们推出了优化升级版1.1,旨在解决这些问题并提高灵活性和适用性。 ... [详细]
author-avatar
我的爱来了2012_800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有