我有一个swing应用程序,我编写了代码来更改JTextArea的背景颜色。但是,它给了我例外。
以下是代码:
//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);
}
}
答案 0 :(得分:3)
您需要将代码行frame.setVisible(true);
移动为void 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
答案 1 :(得分:0)
你的textarea占据了框架的所有空间。
在代码中再添加两行,然后文本区域采用帧的特定部分。
area.setBounds(20,20,100,30);
frame.setLayout(null);