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()方法的更多相关文章

  1. java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)

    1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...

  2. 百度地图API 批量添加 带检索功能的信息窗口

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 转 如何用mt7620方案的rt2860v2驱动实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊?

    原文:http://www.zhihu.com/question/33559283 如何用mt7620方案的rt2860v2驱动实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊? 如何用mt7 ...

  4. SSRS中加入书签功能及数据集窗口

    SSRS在使用过程中,是比较好用的,但如果报表过长,则会比较难看到想看的内容,在SSRS中有书签功能,可以将报表直接直接跳转至书签位置,这样用户可以比较精准的定位到关注位置.使用一个文本框或是图片,再 ...

  5. 百度API的经历,怎样为多个点添加带检索功能的信息窗口

    不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!! 伸手党,请直接到页面底部获取完整代码! 最近做一个门店查询的内容展示,考虑到用户直观 ...

  6. 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 ...

  7. MDK中One ELF Section per Function选项功能探究【转载】

    本文主要探讨的是MDK开发工具中One ELF Section per Function选项对于代码优化的作用及其实现的机制. 这里以EK-STM32F开发板的LCDDemo实验例程为例进行说明: 1 ...

  8. vs文件属性(生成操作)各选项功能(发布Web项目时使用)

    转自:http://www.cnblogs.com/paulhe/p/4490583.html 右击项目里的文件,选择属性(F4)会有[生成操作]的选项. 它提供了14项选择,如图: 在这说一下常用的 ...

  9. vs文件属性(生成操作)各选项功能

    右击项目里的文件,选择属性(F4)会有[生成操作]的选项. 它提供了14项选择,如图: 在这说一下常用的选项: 1.编译 编译用于c#代码类的操作,编译之后输出在该程序集的bin目录下.换句话说,代码 ...

随机推荐

  1. (转载)Peter Norvig:十年学会编程

    作者 Peter Norvig 是计算机科学家,Google 的研究总监.在本文中,Peter Norvig会告诉你:为什么急功近利地学习软件开发技术是没效果滴? ================华丽 ...

  2. 对List数组进行排序 Collections.sort(param1,param2)

    @SuppressWarnings("unchecked") List<PageData> group_items_list = (List<PageData&g ...

  3. htm基础知识,css的链入以及标签分类。

    <!DocTYPE>  DOC--Document 文档  TYPE  类型  文档类型 告诉浏览器这是什么文件 单标签: meta  设置   charset  设置编码 双标签: 开始 ...

  4. scripy

    性能相关 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. import requests def fetch_async(url): ...

  5. CentOS7安装PostgreSQL10,pgadmin4

    ======PostgreSQL10 CentOS7=================FYI:https://tecadmin.net/install-postgresql-server-centos ...

  6. HDU1272小希的迷宫–并查集

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...

  7. [洛谷P1417 烹调方案]贪心+dp

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3211Dream City Time Limit: 1 Second     ...

  8. JS 冒泡排序法 输出最大值

    <html lang="en-US"> <head> <meta charset="UTF-8"> <title> ...

  9. centos7 添加第三方源

    第三方源下载地址: http://repoforge.org/use/ 选择合适自己包 我选择的是EL7的 wget 下载这个包 接着使用rpm -ivh 包名 确认是否添加成功 ls /etc/yu ...

  10. Coding kata: get the top two teams in one group

    In this week, we did a coding kata, the subject is to select the top two teams of football group mat ...