读取文件到swt界面,界面拖拽不动,卡死的问题

甜甜小米粒 甜甜小米粒 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了一个简单的读取.sql文件内容到TEXT组件的小程序,文件内容能够读取到界面,但是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 资料比较全面哦 不错!

liuwenfeng554

DBeaver 26 深度解析:JDBC协议栈与多数据库协同实践

DBeaver 作为主流开源数据库客户端,其本质是基于JDBC协议的跨数据库交互中间件,而非原生数据库驱动。它通过动态驱动管理、SQL执行上下文隔离和连接稳定性优化,实现MySQL、PostgreSQL、Oracle、OceanBase、达梦等异构数据库的统一访问。其技术价值在于将复杂的JDBC元数据适配、认证协议协商(如caching_sha2_password)、高DPI渲染、区域设置与字符集处理等底层问题封装为可视化向导,显著降低SQL工程师、DBA及全栈开发者的使用门槛。典型应用场景涵盖教学实验、信

weixin_34314962

DBeaver 26 安装全指南:Java 版本、驱动配置与多平台避坑

DBeaver 是一款基于 Eclipse RCP 构建的开源数据库客户端,其本质是依赖 Java 运行时的跨平台应用容器,而非自带运行环境的普通桌面软件。理解其‘驱动即能力、配置即自由’的设计哲学,是掌握 MySQL、PostgreSQL、OceanBase、GaussDB 等多源连接的关键前提。DBeaver 26 强制要求 Java 17/21,不兼容 JDK 11 或 JDK 22,且需精确指定 JVM 动态库路径而非仅设 JAVA_HOME;同时,驱动加载、字符集、时区、SSL 等参数必须与目标数

weixin_34234721

Java开发中可以防止界面假死的刷新代码

今天小编就为大家分享一篇关于Java开发中可以防止界面假死的刷新代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

weixin_38658405

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定

weixin_34372728
评论 7
收藏 已收藏
分享
返回顶部
甜甜小米粒
Java SE 62,621 成员 307,251 内容