`
zhougm1030
  • 浏览: 20090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于在java中将控制台输出重定向到Text控件上的问题

    博客分类:
  • java
阅读更多

    最近在写一个数据库操作的小的桌面程序,想在程序中直接调用*.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
0
0
分享到:
评论

相关推荐

    控制台程序输出重定向

    文件`testGUI`可能包含了一个演示如何实现上述功能的MFC GUI程序代码,通过分析和运行这个示例,你可以更深入地理解和掌握控制台输出重定向的技术。在实践中,根据具体需求,你可能还需要处理线程同步、文本滚动、...

    用JAVA导出MYSQL的数据

    为了处理输出的SQL脚本,程序将控制台输出重定向到一个StringBuilder,然后将结果写入指定的SQL文件。这里需要注意的是,由于数据可能包含中文字符,因此在处理输入流和输出流时需要指定正确的字符编码(通常是UTF-8...

    STM32F103C8T6标准库-printf重定向

    如果想要将printf函数的输出重定向到其他设备或接口,可以使用重定向函数。以下是步骤: 1. 在main函数中添加以下代码,将printf函数重定向到自定义的函数中: ``` #include #include int fputc(int ch, FILE* ...

    如何在Java中将XML文档转换成HTML文档.pdf

    ### 如何在Java中将XML文档转换成HTML文档 #### 核心知识点解析: ##### XML与HTML转换背景 XML(eXtensible Markup Language)和HTML(HyperText Markup Language)虽然都属于标记语言,但各自的功能和应用领域...

    VS2022控制台输出 Hello World 示例

    总的来说,“VS2022控制台输出 Hello World 示例”是一个很好的起点,它让你熟悉了VS2022的界面、项目创建过程以及C++基本的输入输出操作。随着对VS2022和C++的进一步学习,你可以创建更复杂的程序,实现各种功能。...

    java中将string类型转换成timestamp类型

    在实际开发中,我们可能需要将Timestamp类型转换成String类型,以便于将时间戳数据存储到数据库中或显示在用户界面上。这可以使用Timestamp类型的toString()方法,该方法将Timestamp类型的时间戳转换成String类型的...

    java中将多个excel打包成zip文件下载.rar

    在Java编程环境中,将...总之,Java中将多个Excel文件打包成ZIP并下载涉及到文件I/O操作、ZIP文件处理以及Web服务响应的设置。理解这些知识点对于Java开发者来说至关重要,尤其在处理大量数据导出或文件分发的场景下。

    VB022-显示文字到text中

    在VB(Visual Basic)编程中,将文字显示到Text控件是常见的操作,尤其是在开发...以上就是关于在VB中将文字显示到Text控件中的主要知识点,通过掌握这些,你可以创建出各种与用户交互的界面,提升应用程序的用户体验。

    java中将数据和图片导出到Excel文件

    ### Java中将数据和图片导出到Excel文件 在Java编程环境下实现数据及图片导出至Excel文件是一项常见的任务,特别是在处理报表、数据分析等场景时。本文将详细解析如何通过Java代码来完成这一过程,包括如何创建...

    管道与IO重定向 计算机操作系统 Linux Ubuntu

    IO重定向(Input/Output Redirection)是指在Linux系统中将命令的输入/输出重定向到文件或设备的过程。 IO重定向可以通过使用重定向符号(<、>、>>)来实现。例如,命令`cat > test.data`将`cat`命令的输出重定向到`...

    将Java System.out定向到文件和控制台的快速简便方法

    在Java编程中,有时我们需要将程序的输出不仅显示在控制台上,还要将其重定向到一个文件中以便于日志记录、调试或者分析。标题“将Java System.out定向到文件和控制台的快速简便方法”以及描述所提及的问题,正是...

    C#文档拖放到制定控件

    // 在这里处理droppedText,例如添加到列表或控制台输出 Console.WriteLine("Dropped Text: " + droppedText); } } ``` 5. **WinFormDragAndDrop项目**: - 从提供的压缩包文件名"WinFormDragAndDrop"来看,...

    在Java 8中将List转换为Map对象方法

    在Java 8中将List转换为Map对象方法 在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 ...

    STM32 printf 函数重定向

    因此,我们需要将`printf`的输出重定向到STM32的串口,如UART(通用异步收发传输器),以便通过串口线连接到PC的终端软件,如SecureCRT或Putty,来查看打印信息。 实现`printf`重定向的过程通常包括以下步骤: 1. ...

    Java中将Json文件解析为Java类

    而将JSON数据解析成Java类是常见的处理方式,这使得数据可以直接映射到Java对象上,便于进一步的操作和处理。本文将详细探讨如何在Java中将Json文件解析为Java类。 首先,我们需要了解JSON的结构。JSON是一种键值对...

    Java中将汉字转为拼音的Demo

    在使用这个Demo时,需要注意的是,由于Java的`sun.pinyin`包是非公开API,过度依赖可能会导致兼容性问题。因此,更推荐使用如`pinyin4j`这样的第三方库,它们提供了稳定的API且不受JDK版本限制。 总的来说,这个...

    解决WIN7系统中VS2010不能使用MSCOMM控件的问题

    解决 WIN7 系统中 VS2010 不能使用 MSCOMM 控件的问题 在 WIN7 系统中,VS2010 不能直接使用 MSCOMM 控件,因为它不自带这个控件。要使用 MSCOMM 控件,需要下载 MSCOMM 控件包,并将其注册到系统目录中,然后在 VS...

    MFCpicture控件上画图

    注意,尽管在`OnDraw`中可以直接绘制到控件上,但更复杂的应用可能需要使用设备上下文(DC)的其他特性,如位图操作、渐变填充、文本输出等。GDI提供了丰富的绘图函数,如`Ellipse`, `Rectangle`, `TextOut`, `...

    在Java中将List转换为String输出过程解析

    Java中将List转换为String输出过程解析 在Java编程语言中,将List转换为String输出是一种常见的操作。这种操作可以将List中的元素转换为一个字符串,方便输出和显示。本文将详细介绍Java中将List转换为String输出的...

    vc控件在IE8中不能调试的解决办法

    - **检查控制台输出**:观察控制台输出,查看是否有错误或警告信息。 - **交互式调试**:使用断点等方式进行交互式的调试。 #### 总结 通过以上步骤,我们不仅解决了IE8中无法调试ActiveX控件的问题,还确保了控件...

Global site tag (gtag.js) - Google Analytics