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目录下.换句话说,代码 ...
随机推荐
- JavaScript操作符-3---算数,逻辑,赋值,比较,三元
JavaScript操作符 学习目标 1.掌握什么是表达式 2.掌握javascript操作符的分类 3.掌握算数操作符 什么是表达式 将类型的数据(如常量.变量.函数等),用运算符号按一定的规则链接 ...
- Ubuntu16.04换源(转)
乌班图换源(ubuntu 16.04换阿里云源为例) 换成国内最快的阿里云源 第一步:备份原来的源文件 cd /etc/apt/ 1 2 然后会显示下面的源文件sources.list 输入命令 su ...
- MySQL中的修改表操作
一.增加表的列 语法:alter table 表名 add( 增加列定义 ); 实例: #增加列 alter table text add( text_num ) ...
- pytorch实现rnn并且对mnist进行分类
1.RNN简介 rnn,相比很多人都已经听腻,但是真正用代码操练起来,其中还是有很多细节值得琢磨. 虽然大家都在说,我还是要强调一次,rnn实际上是处理的是序列问题,与之形成对比的是cnn,cnn不能 ...
- {"errcode":48001,"errmsg":"api unauthorized}
微信公众号基础知识说明 网页授权获取微信用户信息:两种 scope 域 https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&am ...
- Java 源码解析
Object equals方法对比两个对象是否是内存中同一个物理地址 hashCode规定,当两个对象相等时,必须返回相等的hashCode,所以重写equals方法有必要重写hashCode方法 如 ...
- https://blog.csdn.net/qq_35447305/article/details/78587691
来源:https://blog.csdn.net/qq_35447305/article/details/78587691 需要去查看设置.C:\Users\用户名 目录下找到 .npmrc文件,删除 ...
- mongodb启动很慢
故障现象mongodb重启后,等了几十分钟还一直没启动完成,单节点副本集,状态一直处于startup 原因分析查看mongod的错误日志,发现一直处于building index,但根据之前的经验,只 ...
- linux 文件管理操作入门
mkdir -p /root/kali/bp/shell 一路创建文件夹直到生成文件夹shell,中间没有kali文件夹的话也会自动创建生成 tar解压缩 范例一:将整个 /etc 目录下的文件全部 ...
- Android之根布局动态载入子布局时边距设置无效问题
Android大部分的控件都会有padding和layout_margin两个属性,一般来说它们的差别是: padding:控件中的内容离控件边缘的距离. margin: 控件离它的父控件边缘的距离 ...