- 浏览: 129644 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
mr_wangjq:
...
跟着官网学Struts2使用(一) -
雪馨25:
sweat89 写道嗯,楼主的学习方法,很值得我学习。加油!! ...
跟着官网学Struts2使用(一) -
雪馨25:
381895649 写道建议用用springmvc,哈.嗯,都 ...
跟着官网学Struts2使用(一) -
sweat89:
嗯,楼主的学习方法,很值得我学习。加油!!
跟着官网学Struts2使用(一) -
381895649:
建议用用springmvc,哈.
跟着官网学Struts2使用(一)
一、实现效果
二、代码
import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; public class Test { public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); JFrame frame = new JFrame(); frame.setTitle("Auto Completion Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(200, 200, 500, 400); ArrayList<String> items = new ArrayList<String>(); Locale[] locales = Locale.getAvailableLocales(); for (int i = 0; i < locales.length; i++) { String item = locales[i].getDisplayName(); System.out.println(item); items.add(item); } JTextField txtInput = new JTextField(); setupAutoComplete(txtInput, items); txtInput.setColumns(30); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(txtInput, BorderLayout.NORTH); frame.setVisible(true); } private static boolean isAdjusting(JComboBox cbInput) { if (cbInput.getClientProperty("is_adjusting") instanceof Boolean) { return (Boolean) cbInput.getClientProperty("is_adjusting"); } return false; } private static void setAdjusting(JComboBox cbInput, boolean adjusting) { cbInput.putClientProperty("is_adjusting", adjusting); } public static void setupAutoComplete(final JTextField txtInput, final ArrayList<String> items) { final DefaultComboBoxModel model = new DefaultComboBoxModel(); final JComboBox cbInput = new JComboBox(model) { public Dimension getPreferredSize() { return new Dimension(super.getPreferredSize().width, 0); } }; setAdjusting(cbInput, false); for (String item : items) { model.addElement(item); } cbInput.setSelectedItem(null); cbInput.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (!isAdjusting(cbInput)) { if (cbInput.getSelectedItem() != null) { txtInput.setText(cbInput.getSelectedItem().toString()); } } } }); txtInput.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { setAdjusting(cbInput, true); if (e.getKeyCode() == KeyEvent.VK_SPACE) { if (cbInput.isPopupVisible()) { e.setKeyCode(KeyEvent.VK_ENTER); } } if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN) { e.setSource(cbInput); cbInput.dispatchEvent(e); if (e.getKeyCode() == KeyEvent.VK_ENTER) { txtInput.setText(cbInput.getSelectedItem().toString()); cbInput.setPopupVisible(false); } } if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { cbInput.setPopupVisible(false); } setAdjusting(cbInput, false); } }); txtInput.getDocument().addDocumentListener(new DocumentListener() { public void insertUpdate(DocumentEvent e) { updateList(); } public void removeUpdate(DocumentEvent e) { updateList(); } public void changedUpdate(DocumentEvent e) { updateList(); } private void updateList() { setAdjusting(cbInput, true); model.removeAllElements(); String input = txtInput.getText(); if (!input.isEmpty()) { for (String item : items) { if (item.toLowerCase().startsWith(input.toLowerCase())) { model.addElement(item); } } } cbInput.setPopupVisible(model.getSize() > 0); setAdjusting(cbInput, false); } }); txtInput.setLayout(new BorderLayout()); txtInput.add(cbInput, BorderLayout.SOUTH); } }
发表评论
-
【负载均衡apache+tomcat+windows系统(二)】配置
2014-02-03 11:11 4307上一小节介绍了,具体的软件安装:【负载均衡apache+to ... -
【oracle】初学jobs
2013-08-19 17:32 1045含义:job是oracle的一种对象,可以理解为定时执行的程 ... -
算法--排序(冒泡,选择,插入,快速)
2013-01-08 14:35 1776一、冒泡排序 1.1 概念 重复地走访过要排序的数 ... -
netBeans使用过程中遇见问题及解决方法
2012-02-06 09:37 1977问题一: 程序设计过程中工具栏的拖拽出现问题 解决方案: ... -
Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
2012-03-26 13:36 1316eclipse下载官网:eclipse下载 版本: ... -
【JavaWeb】eclipse中常见报错解决汇总
2012-04-03 20:57 917报错一: servlet cannot be res ... -
基础正则表达式知识学习总结
2012-07-22 00:10 735学习的网址 http://regexbook ... -
【java】JTable中某一列设置为下拉列表
2012-07-23 17:34 1233JComboBox c = new JComboBox( ... -
【java】JETM--Java™的执行时间测量库简单学习(一)
2012-08-15 17:11 1958一、下载 用途:测试Java™应用程序潜在的性 ... -
【java】实现日历对话框
2012-08-24 16:20 1556一、实现效果 二、代码 // ... -
Jfreechat The type org.jfree.util.PublicCloneable cannot be resolved错误
2012-08-24 18:44 1264功能: java实现柱状图功能,添加了jfreechart- ... -
【java】实现柱状图 饼状图
2012-08-30 10:45 3044一、前提: 下载增加ja ... -
【java】实现导出Excel文件和XML文件
2012-08-30 14:43 3169一、功能简述 点击“导出”按钮,弹出文件选择对话框, ... -
【java】实现发送带附件email
2012-08-31 15:30 1362一、目标 用java代码实现发送带附件email的功 ... -
【java】值传递和引用传递理解
2012-09-03 18:48 835一、理解 ★ 当一个变量最为一个参数传入方法 ... -
【java】构造函数的继承执行顺序
2012-09-08 11:31 2694问题: 子类继承父类,构造函数及公共属性的执行顺序是 ... -
【java】加密方式
2012-09-11 15:06 968/** * String Utility Class Th ... -
【hibernate】问题:hibernate无法持久化数据
2012-10-25 16:57 1009现象: 程序执行正确,但数据库没有已经执行成功的插入数据 ... -
【tomcat】常见问题
2012-10-28 10:48 786问题一:运行tomcat(bin ... -
【java】反射可执行的实例
2012-12-01 18:17 942一、实例目标 根据传入的完整类名字符串类名,实现 ...
相关推荐
总结来说,实现`JTextField`的自动完成功能,主要依赖于`JComboBox`的下拉列表特性,通过组合和监听机制,可以在用户输入时动态展示匹配的建议,从而提升用户的输入效率和应用的用户体验。这种设计思路展示了在Java ...
JAVA学生管理信息系统结合了Java语言的强大功能、Eclipse的开发便利性以及MySQL数据库的可靠性,构建了一个集学生信息管理、成绩查询、权限控制于一体的综合平台。通过对用户登录、数据查询、界面布局等关键功能的...
- 搜索功能:JTextField输入关键词,搜索匹配的职位或求职者。 - 数据展示:JTable显示职位列表或求职者列表,支持排序和过滤功能。 此外,系统还可能涉及到数据库操作,如使用JDBC(Java Database Connectivity)...
1. **数据录入**:使用JTextField和JComboBox等组件收集用户输入的学生信息,然后通过FileWriter或ObjectOutputStream将数据写入文件。 2. **数据查询**:允许用户输入搜索条件,通过BufferedReader读取文件,筛选...
在Java编程中,文本框(JTextField)是用户界面中常用的一个组件,它允许用户输入单行文本。在设计交互式应用时,我们经常需要实现一个功能,即当用户在文本框中输入时,系统能根据输入内容自动给出提示或建议,这...
- **搜索功能**: 可以通过JTextField让用户输入关键词,结合JComboBox提供筛选条件,如按价格、面积等。按下“搜索”按钮后,系统将查询数据库并显示匹配结果。 - **下拉框(JComboBox)应用**:下拉框通常用于提供...
例如,注册界面可以通过JOptionPane对话框进行用户信息输入验证,而登录功能则需要处理事件监听,确保用户输入的凭证与数据库中的数据匹配。 二、商品管理 商品管理是超市运营的核心,包括商品的添加、删除、修改和...
在教材查询方面,我们可以使用JTextField配合 JButton实现关键词搜索功能,用户输入教材名称或作者后,点击搜索按钮,系统将根据输入内容查找并显示匹配的教材信息。为了展示搜索结果,可以使用JTable组件,将查询到...
对于初学者来说,理解JTextField、KeyListener或ActionListener接口以及如何将它们结合起来实现输入监听是学习GUI编程的重要步骤。 当用户输入发生变化时,我们需要遍历字典库,找到所有以当前输入开头的单词。这...
在Java编程中,仿Google文本框查询涉及到的关键技术主要包括用户界面设计、事件监听...通过学习并理解这个示例,开发者不仅可以掌握基本的GUI设计,还能了解到如何将用户输入与后台处理相结合,提供实时的交互体验。
使用JTable显示学生列表,JTextField和JComboBox接收用户输入,JButton触发相应操作。 四、代码组织与结构 良好的代码组织和设计模式的应用有助于项目的可维护性和扩展性。可以采用MVC(Model-View-Controller)...
在后台,我们需要编写一个登录验证函数,比较用户输入与预设值是否匹配。 图书数据通常存储在数据库中,如MySQL或SQLite。这里涉及数据库连接和SQL操作。使用JDBC(Java Database Connectivity)API,我们可以建立...
在Swing中,可以使用JComboBox或者JTextField结合监听器来实现搜索功能。用户在文本框中输入关键词,程序通过监听键盘事件获取输入,并在后台遍历数据源进行匹配,然后更新显示结果。 对于Java初学者来说,Java ...
在Swing中,我们通常会用到JFrame作为主窗口,JPanel作为容器来组织其他组件,JButton用于用户交互,JLabel显示文本或图标,JTable用于展示和操作数据,JComboBox和JTextField则用来输入和选择信息。此外,我们还会...
例如,使用JTable展示数据库查询结果,JButton触发业务逻辑,JComboBox提供选择项,JTextField和JTextArea用于输入和展示文本。每个系统可能包含不同的功能模块,如用户管理、权限控制、报表生成等,源码示例可以...
例如,当用户点击“查询”按钮时,会触发事件处理函数,该函数将用户输入的查询参数与数据库进行匹配,返回航班信息并显示在界面上。 此外,为了实现业务逻辑,如预订座位和支付,需要与数据库进行交互。这通常通过...
自动搜寻功能通常是指当用户在`JComboBox`的文本输入框中开始输入时,组合框会自动过滤出与输入字符相匹配的选项,并突出显示或直接定位到第一个匹配项。这不仅节省了用户的输入时间,也提高了数据选择的准确性。 #...
在学生信息管理系统中,Swing提供了丰富的组件,如JTable用于展示学生列表,JTextField和JComboBox用于输入和选择数据,JButton用于触发操作等。开发者可以通过布局管理器灵活地组织这些组件,构建出符合需求的界面...
3. **组件(Components)**:GUI由各种组件组成,如JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、JComboBox(组合框)和JCheckBox(复选框)等。开发者可以通过设置属性和监听...
这个程序可以帮助我们理解和实践如何将用户交互与后端数据处理相结合,为用户提供友好的界面。 首先,我们需要了解Java GUI的基础,这主要涉及Java Swing或JavaFX库。在这个案例中,Swing可能被用作构建GUI的主要...