读取文件到swt界面,界面拖拽不动,卡死的问题
package com.dba.ui;
import java.io.BufferedReader;
import java.io.FileReader;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
public class Main extends Shell {
private Text text;
/**
* Launch the application.
* @param args
*/
public static void main(String args[]) {
try {
Display display = Display.getDefault();
Main shell = new Main(display);
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the shell.
* @param display
*/
public Main(Display display) {
super(display, SWT.SHELL_TRIM);
text = new Text(this, SWT.BORDER);
text.setBounds(10, 31, 422, 210);
Button button = new Button(this, SWT.NONE);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
String lineMessage;
try {
BufferedReader bf = new BufferedReader(new FileReader("./script/Oracle.sql"));
while ((lineMessage = bf.readLine()) != null) {
text.append(lineMessage + "\n");
Thread.sleep(1000);
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
button.setBounds(10, 3, 72, 22);
button.setText("\u8BFB\u53D6");
createContents();
}
/**
* Create contents of the shell.
*/
protected void createContents() {
setText("SWT Application");
setSize(450, 300);
}
@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
}
相关推荐
SWT API 资料
swt 应用教程 资料 api 资料比较全面哦 不错!
DBeaver 26 深度解析:JDBC协议栈与多数据库协同实践
DBeaver 作为主流开源数据库客户端,其本质是基于JDBC协议的跨数据库交互中间件,而非原生数据库驱动。它通过动态驱动管理、SQL执行上下文隔离和连接稳定性优化,实现MySQL、PostgreSQL、Oracle、OceanBase、达梦等异构数据库的统一访问。其技术价值在于将复杂的JDBC元数据适配、认证协议协商(如caching_sha2_password)、高DPI渲染、区域设置与字符集处理等底层问题封装为可视化向导,显著降低SQL工程师、DBA及全栈开发者的使用门槛。典型应用场景涵盖教学实验、信
DBeaver 26 安装全指南:Java 版本、驱动配置与多平台避坑
DBeaver 是一款基于 Eclipse RCP 构建的开源数据库客户端,其本质是依赖 Java 运行时的跨平台应用容器,而非自带运行环境的普通桌面软件。理解其‘驱动即能力、配置即自由’的设计哲学,是掌握 MySQL、PostgreSQL、OceanBase、GaussDB 等多源连接的关键前提。DBeaver 26 强制要求 Java 17/21,不兼容 JDK 11 或 JDK 22,且需精确指定 JVM 动态库路径而非仅设 JAVA_HOME;同时,驱动加载、字符集、时区、SSL 等参数必须与目标数
Java开发中可以防止界面假死的刷新代码
今天小编就为大家分享一篇关于Java开发中可以防止界面假死的刷新代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
DBeaver 26安装配置全指南:JDK适配、驱动管理与UI渲染避坑
DBeaver作为跨数据库通用客户端,其核心能力依赖Java运行环境、JDBC驱动机制与图形渲染引擎三者的协同。理解JDK版本兼容性(如JDK 11+强制要求)、驱动加载原理(Maven坐标自动解析 vs 离线jar管理)及UI渲染变迁(SWT→LayUI 2.0带来的字体/缩放/高亮重置),是保障稳定连接MySQL、Oracle、OceanBase、GaussDB等多源数据库的技术前提。本文聚焦DBeaver 26版本升级带来的底层变化,详解JDK绑定验证、国产数据库驱动签名绕过、HiDPI适配与CSS定


Java SE
