java ui去空格,Java JFrame中的奇怪空格

这是我的问题.

当我使用以下代码时:

package xyz.lexium.giapb.ui;

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ConsoleWindow extends WindowAdapter implements WindowListener, ActionListener, Runnable {

private JFrame frame;

private JTextArea textArea;

private Thread reader;

private Thread reader2;

private boolean quit;

private final PipedInputStream pin = new PipedInputStream();

private final PipedInputStream pin2 = new PipedInputStream();

public ConsoleWindow() {

frame = new JFrame("GIAPB - Console");

Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

int x = (int) ((dimension.getWidth() - frame.getWidth()) / 3);

int y = (int) ((dimension.getHeight() - frame.getHeight()) / 3);

frame.setSize(x, y);

textArea = new JTextArea();

textArea.setEditable(false);

JButton button = new JButton("clear");

button.setBorder(null);

button.setBackground(Color.BLACK);

button.setForeground(Color.white);

frame.getContentPane().setBackground(Color.BLACK);

frame.getContentPane().setLayout(new BorderLayout());

frame.getContentPane().add(new JScrollPane(textArea), BorderLayout.CENTER);

frame.getContentPane().add(button, BorderLayout.SOUTH);

frame.addWindowListener(this);

textArea.setBackground(Color.BLACK);

textArea.setForeground(Color.white);

textArea.setBorder(null);

frame.setVisible(true);

button.addActionListener(this);

try {

PipedOutputStream pout = new PipedOutputStream(this.pin);

System.setOut(new PrintStream(pout, true));

} catch (java.io.IOException io) {

textArea.append("Couldn't redirect STDOUT to this console

" + io.getMessage());

} catch (SecurityException se) {

textArea.append("Couldn't redirect STDOUT to this console

" + se.getMessage());

}

try {

PipedOutputStream pout2 = new PipedOutputStream(this.pin2);

System.setErr(new PrintStream(pout2, true));

} catch (java.io.IOException io) {

textArea.append("Couldn't redirect STDERR to this console

" + io.getMessage());

} catch (SecurityException se) {

textArea.append("Couldn't redirect STDERR to this console

" + se.getMessage());

}

quit = false; // signals the Threads that they should exit

// Starting two seperate threads to read from the PipedInputStreams

//

reader = new Thread(this);

reader.setDaemon(true);

reader.start();

//

reader2 = new Thread(this);

reader2.setDaemon(true);

reader2.start();

}

public synchronized void windowClosed(WindowEvent evt) {

quit = true;

this.notifyAll(); // stop all threads

try {

reader.join(1000);

pin.close();

} catch (Exception e) {

}

try {

reader2.join(1000);

pin2.close();

} catch (Exception e) {

}

System.exit(0);

}

public synchronized void windowClosing(WindowEvent evt) {

frame.setVisible(false); // default behaviour of JFrame

frame.dispose();

}

public synchronized void actionPerformed(ActionEvent evt) {

textArea.setText("");

}

public synchronized void run() {

try {

while (Thread.currentThread() == reader) {

try {

this.wait(100);

} catch (InterruptedException ie) {

}

if (pin.available() != 0) {

String input = this.readLine(pin);

textArea.append(input);

}

if (quit)

return;

}

while (Thread.currentThread() == reader2) {

try {

this.wait(100);

} catch (InterruptedException ie) {

}

if (pin2.available() != 0) {

String input = this.readLine(pin2);

textArea.append(input);

}

if (quit)

return;

}

} catch (Exception e) {

textArea.append("

Console reports an Internal error.");

textArea.append("The error is: " + e);

}

}

public synchronized String readLine(PipedInputStream in) throws IOException {

String input = "";

do {

int available = in.available();

if (available == 0)

break;

byte b[] = new byte[available];

in.read(b);

input = input + new String(b, 0, b.length);

} while (!input.endsWith("

") && !input.endsWith("

") && !quit);

return input;

}

}

它成为我的控制台,但是在文本区域和边框之间添加了一条白线.我该如何删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值