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 类用于显示四种类型的对话框 消息对话框 - 显示消息的对话框,可以添加图标来提醒用户。确认对话框 - 除了发送消息外,还允许用户回答问题。输入对话框 ... 阅读更多
在 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 是一组复选框,其中可以同时选择多个项目。JRadioButton JRadioButton 是一个组件,它表示一个已选择或未选择的项目状态。通常,创建一组单选按钮以向用户提供选项,但一次只能选择一个选项。JRadioButton 将生成 ActionListener、ChangeListener 和 ItemListener 接口。单选按钮通常成组使用以显示多个选项,因此它们用于…… 阅读更多
3K+ 次浏览
Java 中的 GUI 通过鼠标、键盘和各种用户控件(如按钮、复选框、文本字段等)处理与用户的交互作为事件。为了将 Java 实现为事件驱动的编程,必须正确处理这些事件。事件处理中的组件 事件 事件源 事件监听器/处理程序 事件 事件被定义为描述源对象状态变化的对象。Java 在 java.awt.event 包中定义了许多这样的事件类。一些事件是 ActionEvent、MouseEvent、KeyEvent、FocusEvent、ItemEvent 等。事件源 源是生成事件的对象。当该对象的内部状态发生变化时,就会发生事件生成。…… 阅读更多
4K+ 次浏览
Java 中 JTextField 和 JTextArea 的主要区别在于,JTextField 允许在 GUI 应用程序中输入单行文本,而 JTextArea 允许在 GUI 应用程序中输入多行文本。JTextField JTextField 是最重要的组件之一,它允许用户以单行格式输入文本值。当我们尝试在其中输入一些输入时,JTextField 将生成 ActionListener 接口。JTextComponent 是 JTextField 的超类,它提供一组由 JTextfield 使用的常用方法。JTextField 类中的重要方法是 setText()、getText()、setEnabled() 等。示例 import javax.swing.*; import java.awt.*; public class JTextFieldTest { public static ... 阅读更多
JFrame添加到框架中的组件被称为其内容,这些内容由 contentPane 管理。要向 JFrame 添加组件,我们必须改用其 contentPane。JFrame 包含一个带有标题、边框、(可选)菜单栏和用户指定组件的窗口。JFrame 可以移动、调整大小、最小化,并且它不是 JComponent 的子类。默认情况下,JFrame 显示在屏幕的左上角。要在指定位置显示框架,我们可以使用 JFrame 类中的 setLocation(x, y) 方法。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JFrameDemo { public static void main(String s[]) { ... 阅读更多