JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法
JComboBox有一个
SelectedItem属性,所以使用getSelectedItem()就可以得到当前选中值.
package ltb20180106; import javax.swing.*;
import java.awt.event.*;
import java.awt.*; public class UserLoginApp { private JFrame jf;
private JLabel name;
private JLabel user;
private JLabel password;
private JButton confirm;
private JButton cancel;
private JButton quit; private JPanel p1;
private JPanel p2;
private JpanelAction p3;
private JPanel p4; private JComboBox <String> juser;
private JTextField jname;
private JPasswordField jpassword; private String[] s= {"学生用户","教师用户"}; private String ss;
private char[] c;
private String bname;
private String item; public UserLoginApp() { try { jf=new JFrame("用户登录");
jf.setSize(250, 160);
jf.setLayout(new BorderLayout()); name=new JLabel("名字:");
password=new JLabel("密码:");
user=new JLabel("用户类型"); juser=new JComboBox<String>(s);
jname=new JTextField();
jpassword=new JPasswordField(); confirm=new JButton("确定");
cancel=new JButton("取消");
quit=new JButton("退出"); p1=new JPanel();
p1.setLayout(new BoxLayout(p1,BoxLayout.Y_AXIS));//允许垂直或水平布置多个组件的布局管理器
p1.add(user);
p1.add(name);
p1.add(password);
p1.setSize(100,100); p2=new JPanel();
p2.setLayout(new BoxLayout(p2,BoxLayout.Y_AXIS));
p2.add(juser);
p2.add(jname);
p2.add(jpassword);
p2.setSize(150,100); p3=new JpanelAction();
p3.setLayout(new FlowLayout());
p3.add(confirm);
p3.add(cancel);
p3.add(quit);
confirm.addActionListener(p3);
cancel.addActionListener(p3);
quit.addActionListener(p3); p4=new JPanel();
p4.setLayout(new FlowLayout());
p4.add(p1);
p4.add(p2); jf.add(p4,BorderLayout.NORTH);
jf.add(p3,BorderLayout.CENTER); jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null); }catch(Exception e) { System.out.println(e.getMessage()); } } @SuppressWarnings("serial")
class JpanelAction extends JPanel implements ActionListener { public void actionPerformed(ActionEvent e)
{ bname=e.getActionCommand();//关键的地方 if(bname.equals("确定")) { ss=jname.getText();
c=jpassword.getPassword();
item=(String)juser.getSelectedItem();// JComboBox 当前所选项 if(ss.equals("")) { name.setText("用户名不能为空"); } else if(c.length==0) { password.setText("密码不能为空"); }else if(item.equals("学生用户")) { if(ss.equals("s")&&new String(c).equals("s")) {//密码字符转化字符串处理 name.setText("登录成功");
password.setText("登录成功");
}
System.out.println("学生"); }else if(item.equals("教师用户")) { if(ss.equals("t")&&new String(c).equals("t")) {//密码字符转化字符串处理 name.setText("登录成功");
password.setText("登录成功"); } System.out.println("教师");
} }else if (bname.equals("取消")) { jname.setText("");
jpassword.setText(""); }else if(bname.equals("退出")){ jf.dispose();//释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。
}
} } public static void main(String[] args) { new UserLoginApp();
} }

JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法的更多相关文章
- java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)
1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 转 如何用mt7620方案的rt2860v2驱动实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊?
原文:http://www.zhihu.com/question/33559283 如何用mt7620方案的rt2860v2驱动实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊? 如何用mt7 ...
- SSRS中加入书签功能及数据集窗口
SSRS在使用过程中,是比较好用的,但如果报表过长,则会比较难看到想看的内容,在SSRS中有书签功能,可以将报表直接直接跳转至书签位置,这样用户可以比较精准的定位到关注位置.使用一个文本框或是图片,再 ...
- 百度API的经历,怎样为多个点添加带检索功能的信息窗口
不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!! 伸手党,请直接到页面底部获取完整代码! 最近做一个门店查询的内容展示,考虑到用户直观 ...
- vue-learning:41 - Vuex - 第二篇:const store = new Vue.Store(option)中option选项、store实例对象的属性和方法
vuex 第二篇:const store = new Vue.Store(option)中option选项.store实例对象的属性和方法 import Vuex from 'vuex' const ...
- MDK中One ELF Section per Function选项功能探究【转载】
本文主要探讨的是MDK开发工具中One ELF Section per Function选项对于代码优化的作用及其实现的机制. 这里以EK-STM32F开发板的LCDDemo实验例程为例进行说明: 1 ...
- vs文件属性(生成操作)各选项功能(发布Web项目时使用)
转自:http://www.cnblogs.com/paulhe/p/4490583.html 右击项目里的文件,选择属性(F4)会有[生成操作]的选项. 它提供了14项选择,如图: 在这说一下常用的 ...
- vs文件属性(生成操作)各选项功能
右击项目里的文件,选择属性(F4)会有[生成操作]的选项. 它提供了14项选择,如图: 在这说一下常用的选项: 1.编译 编译用于c#代码类的操作,编译之后输出在该程序集的bin目录下.换句话说,代码 ...
随机推荐
- 复杂的动态布尔表达式性能评估(1)--Antlr4实现
前言: 规则引擎中, 往往涉及到多个条件构成了复杂布尔表达式的计算. 对于这类布尔表达式, 一是动态可变的(取决于运营人员的设定), 二是其表达式往往很复杂. 如何快速的计算其表达式的值, 该系列文章 ...
- Unity 3D与Android Studio安卓交互之-导出jar包
u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- leetcode 772.Basic Calculator III
这道题就可以结合Basic Calculator中的两种做法了,分别是括号运算和四则运算的,则使用stack作为保持的结果,而使用递归来处理括号内的值的. class Solution { publi ...
- indexedDB为何物
https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API 在前一个阶段的工作中,项目组要开发一个平台,为了做出更好的用户体验,实现快 ...
- opencv中mat类介绍
The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...
- web网页【2】
前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...
- day3 python学习
---恢复内容开始--- 运算 在Python中有很多种运算方法,我们在这里只是先说比较运算,逻辑运算,赋值运算,算数运算 在这里要记住 == 判断两个值是否相等 是比较运算符 >= 是否大 ...
- dive 方便的观察容器各层信息的工具
dive 是一个方便的观察容器各层信息的工具,同时也集成了容器构建命令,方便我们在构建容器 镜像的同时查询镜像各层的变动信息 安装 mac 系统,可以按照自己的系统选择安装方式 wget http ...
- lapis 项目添加prometheus 监控
lapis 是基于openresty 扩展的,所以直接将支持prometheus的模块构建进openresty 就可以了 我使用的是nginx-module-vts 模块 环境准备 我已经构建好了 ...
- MCU ADC 进入 PD 模式后出现错误的值?
MCU ADC 进入 PD 模式后出现错误的值? 在调试一款 MCU,最开始问题是无法读到 ADC 的值,应该是读到的值是异常高. 怀疑问题 可能是主频太低,为了降低功耗,这个 MCU 主频被我降了很 ...