最近在写一个数据库操作的小的桌面程序,想在程序中直接调用*.sql脚本,来连续创建多个数据库,里面用到了将控制台输出重定向到Text控件上。
遇到的问题:
问题一: 重定向是成功了,控制台的信息在Text控件上输出,但是我在创建数据库的时候,创建第一个数据库的时候,信息还能正常显示,但是脚本运行到创建第二个的时候,整个窗口就变成“未响应”的状态,直到后台将所有库都创建完成后,程序窗口才有反应,能有继续使用,并将信息一下在全部显示在Text控件中。很不解这是什么原因?
问题二:如附件中图片所示,我想在创建数据库的前面加上一段提示,如“正在创建系统库...”。但是要怎么在*.sql脚本中写代码?
问题有两个,希望高手给予指点,小弟在这里先行谢谢了。
程序中代码:
下面是一段重定向的类:
import java.io.OutputStream;
import java.io.PrintStream;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
public class MyPrintStream extends PrintStream {
private Text text;
public MyPrintStream(OutputStream out, Text text) {
super(out);
this.text = text;
}
/**
* 在这里重截,所有的打印方法都要调用的方法
*/
public void write(byte[] buf, int off, int len) {
final String message = new String(buf, off, len);
/* SWT非界面线程访问组件的方式 */
Display.getDefault().syncExec(new Thread(){
public void run(){
/* 在这里把信息添加到组件中 */
text.append(message);
}
});
}
}
在然后在用下面的代码调用:
MyPrintStream mps = new MyPrintStream(System.out, text);
System.setOut(mps);
System.setErr(mps);
这样就完成了控制台重定向到Text控件上。
- 大小: 7 KB
分享到:
相关推荐
文件`testGUI`可能包含了一个演示如何实现上述功能的MFC GUI程序代码,通过分析和运行这个示例,你可以更深入地理解和掌握控制台输出重定向的技术。在实践中,根据具体需求,你可能还需要处理线程同步、文本滚动、...
为了处理输出的SQL脚本,程序将控制台输出重定向到一个StringBuilder,然后将结果写入指定的SQL文件。这里需要注意的是,由于数据可能包含中文字符,因此在处理输入流和输出流时需要指定正确的字符编码(通常是UTF-8...
如果想要将printf函数的输出重定向到其他设备或接口,可以使用重定向函数。以下是步骤: 1. 在main函数中添加以下代码,将printf函数重定向到自定义的函数中: ``` #include #include int fputc(int ch, FILE* ...
### 如何在Java中将XML文档转换成HTML文档 #### 核心知识点解析: ##### XML与HTML转换背景 XML(eXtensible Markup Language)和HTML(HyperText Markup Language)虽然都属于标记语言,但各自的功能和应用领域...
总的来说,“VS2022控制台输出 Hello World 示例”是一个很好的起点,它让你熟悉了VS2022的界面、项目创建过程以及C++基本的输入输出操作。随着对VS2022和C++的进一步学习,你可以创建更复杂的程序,实现各种功能。...
在实际开发中,我们可能需要将Timestamp类型转换成String类型,以便于将时间戳数据存储到数据库中或显示在用户界面上。这可以使用Timestamp类型的toString()方法,该方法将Timestamp类型的时间戳转换成String类型的...
在Java编程环境中,将...总之,Java中将多个Excel文件打包成ZIP并下载涉及到文件I/O操作、ZIP文件处理以及Web服务响应的设置。理解这些知识点对于Java开发者来说至关重要,尤其在处理大量数据导出或文件分发的场景下。
在VB(Visual Basic)编程中,将文字显示到Text控件是常见的操作,尤其是在开发...以上就是关于在VB中将文字显示到Text控件中的主要知识点,通过掌握这些,你可以创建出各种与用户交互的界面,提升应用程序的用户体验。
### Java中将数据和图片导出到Excel文件 在Java编程环境下实现数据及图片导出至Excel文件是一项常见的任务,特别是在处理报表、数据分析等场景时。本文将详细解析如何通过Java代码来完成这一过程,包括如何创建...
IO重定向(Input/Output Redirection)是指在Linux系统中将命令的输入/输出重定向到文件或设备的过程。 IO重定向可以通过使用重定向符号(<、>、>>)来实现。例如,命令`cat > test.data`将`cat`命令的输出重定向到`...
在Java编程中,有时我们需要将程序的输出不仅显示在控制台上,还要将其重定向到一个文件中以便于日志记录、调试或者分析。标题“将Java System.out定向到文件和控制台的快速简便方法”以及描述所提及的问题,正是...
// 在这里处理droppedText,例如添加到列表或控制台输出 Console.WriteLine("Dropped Text: " + droppedText); } } ``` 5. **WinFormDragAndDrop项目**: - 从提供的压缩包文件名"WinFormDragAndDrop"来看,...
在Java 8中将List转换为Map对象方法 在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 ...
因此,我们需要将`printf`的输出重定向到STM32的串口,如UART(通用异步收发传输器),以便通过串口线连接到PC的终端软件,如SecureCRT或Putty,来查看打印信息。 实现`printf`重定向的过程通常包括以下步骤: 1. ...
而将JSON数据解析成Java类是常见的处理方式,这使得数据可以直接映射到Java对象上,便于进一步的操作和处理。本文将详细探讨如何在Java中将Json文件解析为Java类。 首先,我们需要了解JSON的结构。JSON是一种键值对...
在使用这个Demo时,需要注意的是,由于Java的`sun.pinyin`包是非公开API,过度依赖可能会导致兼容性问题。因此,更推荐使用如`pinyin4j`这样的第三方库,它们提供了稳定的API且不受JDK版本限制。 总的来说,这个...
解决 WIN7 系统中 VS2010 不能使用 MSCOMM 控件的问题 在 WIN7 系统中,VS2010 不能直接使用 MSCOMM 控件,因为它不自带这个控件。要使用 MSCOMM 控件,需要下载 MSCOMM 控件包,并将其注册到系统目录中,然后在 VS...
注意,尽管在`OnDraw`中可以直接绘制到控件上,但更复杂的应用可能需要使用设备上下文(DC)的其他特性,如位图操作、渐变填充、文本输出等。GDI提供了丰富的绘图函数,如`Ellipse`, `Rectangle`, `TextOut`, `...
Java中将List转换为String输出过程解析 在Java编程语言中,将List转换为String输出是一种常见的操作。这种操作可以将List中的元素转换为一个字符串,方便输出和显示。本文将详细介绍Java中将List转换为String输出的...
- **检查控制台输出**:观察控制台输出,查看是否有错误或警告信息。 - **交互式调试**:使用断点等方式进行交互式的调试。 #### 总结 通过以上步骤,我们不仅解决了IE8中无法调试ActiveX控件的问题,还确保了控件...