我有一个swing应用程序,并且编写了代码来更改JTextArea的背景颜色。但是,这给了我异常(exception)。

这是代码:

//1.JtextArea will work after maximize.
//2.on typing text,background  will slowly transform to black line by line.

import java.awt.*;
import javax.swing.*;

public class TextArea {

    JTextArea area;
    JFrame frame;

    public static void main(String args[])
    {
        TextArea x = new TextArea();
        x.execute();
    }

    void execute()
    {
        frame = new JFrame();
        frame.setVisible(true);
        frame.setSize(600,600);
        frame.setTitle("Temp Area");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        area = new JTextArea();
        frame.add(area,BorderLayout.CENTER);

        Color c = new Color(0,0,0,100);
        area.setBackground(c);
    }
}

最佳答案

  • 您需要将代码行frame.setVisible(true);移动为空execute()的最后代码
  • ,因为您已将JTextArea添加到已经可见的Swing GUI中,但它不是基于 Initial Thread
  • 构建的
  • 另一个重要方面:
  • public class TextArea {重命名为public class MyTextArea {,因为TextArea保留了awt.TextArea的Java字
  • TextArea x=new TextArea();x.execute();应该包裹在invokeLater中,更多关于 Oracle tutorial Initial Thread
  • 08-28 22:14