4K+ 阅读量
JTextField 是最重要的组件之一,它允许用户以单行格式输入文本值。我们可以使用 PlainDocument 类来限制用户可以输入到 JTextField 中的字符数。在下面的示例中,我们可以使用 PlainDocument 类实现逻辑,因此我们可以允许用户最多输入 10 个字符,如果输入超过 10 个字符则不允许。示例import java.awt.*; import javax.swing.*; import javax.swing.text.*; class JTextFieldLimit extends PlainDocument { private int limit; JTextFieldLimit(int limit) { super(); ... 阅读更多
3K+ 阅读量
JComboBox 是一个显示下拉列表的组件,并为用户提供选项,每次只能选择一个项目,而 JList 向用户显示多个项目(行),并提供一个选项让用户选择多个项目。JComboBoxJComboBox 可以是可编辑的或只读的。可以使用 ActionListener、ChangeListener 或 ItemListener 接口来处理用户对 JComboBox 的操作。可以使用 getSelectedItem() 方法从组合框中获取选定的或输入的项目。可以使用 setEditable() 方法打开或关闭组合框的文本输入部分。我们可以创建一个 ... 阅读更多
634 阅读量
SwingWorker 类使我们能够在工作线程中执行异步任务(例如长时间运行的任务),然后根据任务结果从事件分派线程 (EDT) 更新 Swing 组件。它是在 Java 1.6 版本中引入的。SwingWorker 类java.swing.SwingWorker 类是一个任务工作者,它在后台执行耗时的任务。SwingWorker 实例与 3 个线程交互,当前线程、工作线程和事件分派线程 (EDT)。当前线程调用 execute() 方法将任务启动到后台并立即返回。工作线程在后台连续执行我们自己的 doInBackground() 方法版本。事件分派线程 (EDT) 从时间到 ... 阅读更多
1K+ 阅读量
当鼠标稳定时处理鼠标事件时,我们可以实现 MouseListener 接口,而当鼠标移动时处理鼠标事件时,我们可以实现 MouseMotionListener 接口。鼠标监听器当我们在源对象上按下、释放或单击(按下后释放)鼠标按钮(左键或右键)或将鼠标指针定位到(进入)和离开(退出)源对象时,会触发 MouseEvent。MouseListener 接口声明以下五个抽象方法语法public void mouseClicked(MouseEvent evt) public void mousePressed(MouseEvent evt) public void mouseReleased(MouseEvent evt) public void mouseEntered(MouseEvent evt) public void mouseExited(MouseEvent evt)示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public ... 阅读更多
10K+ 阅读量
JOptionPane 是 JComponent 类的子类,其中包含用于使用简单代码创建和自定义模式对话框的静态方法。使用 JOptionPane 而不是 JDialog 可以最大程度地减少代码的复杂性。JOptionPane 使用四种标准图标之一(疑问、信息、警告和错误)或用户指定的自定义图标显示对话框。JOptionPane 类用于显示四种类型的对话框MessageDialog - 显示消息的对话框,可以添加图标以提醒用户。ConfirmDialog - 除了发送消息之外,还允许用户回答问题的对话框。InputDialog ... 阅读更多
在 Java 中,在屏幕上显示 Swing 组件后,只能由一个名为事件处理线程的线程操作它们。我们可以在一个单独的块中编写代码,并将此块的引用传递给事件处理线程。SwingUtilities 类有两个重要的静态方法 invokeAndWait() 和 invokeLater() 用于将代码块的引用放入事件队列中。语法public static void invokeAndWait(Runnable doRun) throws InterruptedException, InvocationTargetException public static void invokeLater(Runnable doRun)参数 doRun 是 Runnable 接口实例的引用。在这种情况下,Runnable 接口不会传递给 Thread 的构造函数。Runnable 接口只是 ... 阅读更多
13K+ 阅读量
默认情况下,JTextField 可以允许数字、字符和特殊字符。验证输入到 JTextField 中的用户输入可能很困难,尤其是在输入字符串必须转换为数字值(例如 int)时。在下面的示例中,JTextField 仅允许输入数字值。示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JTextFieldValidation extends JFrame { JTextField tf; Container container; JLabel label; public JTextFieldValidation() { container = getContentPane(); setBounds(0, 0, 500, 300); tf = new JTextField(25); setLayout(new FlowLayout()); container.add(new JLabel("输入数字")); ... 阅读更多
2K+ 阅读量
Java Swing 是一组 API,它为 Java 程序提供图形用户界面 (GUI)。Java Swing 是基于早期称为抽象窗口工具包 (AWT) 的 API 开发的。Java Swing 提供比 AWT 更丰富和更复杂的 GUI 组件。GUI 组件的范围从简单的级别到复杂的树和表格。Java Swing 提供可插拔的外观和感觉,以允许 Java 程序的外观和感觉独立于底层平台。Java Swing 的特性Java Swing 是平台无关的,并遵循 MVC(模型视图控制器)框架。可插拔外观和感觉 - Java ... 阅读更多
JRadioButton 和 JCheckBox 组件都可以扩展 JToggleButton 类,主要区别在于 JRadioButton 是一组按钮,其中一次只能选择一个按钮,而 JCheckBox 是一组复选框,其中可以同时选择多个项目。JRadioButtonJRadioButton 是一个表示项目处于选中或未选中状态的组件。通常,会创建一组单选按钮来为用户提供选项,但一次只能选择一个选项。JRadioButton 将生成 ActionListener、ChangeListener 和 ItemListener 接口。单选按钮通常用于一组中以显示多个选项,因此它们用于 ... 阅读更多
Java 中的 GUI 通过鼠标、键盘和各种用户控件(如按钮、复选框、文本字段等)处理与用户的交互作为事件。必须正确处理这些事件才能将 Java 作为事件驱动编程来实现。事件处理中的组件事件事件源事件监听器/处理程序事件事件被定义为描述源对象状态变化的对象。Java 在 java.awt.event 包中定义了许多这样的事件类一些事件是 ActionEvent、MouseEvent、KeyEvent、FocusEvent、ItemEvent 等。事件源源是生成事件的对象。当该对象的内部状态发生变化时,就会发生事件生成。 ... 阅读更多