问题一:    我把一个JTextPane装入JScrollPane,然后二者的Opaque(底层不透明)属性都设为false,再把其装入JFrame里,希望获得的效果是JFrame层里描绘的图片能够透过这两个元件显示出来。但实际效果却是不透明。
    为什么?
    我如何才能做到我希望实现的那种样子?问题二:
    我自己写了一个类继承自JTextPane,并实现能装入背景图,发现把它装入JScroll中后,JScroll无效,为什么会出现这种问题?如何操作才能让JScroll有效?(这个类我等下贴在下面供大家研究。问题三:
    当我对某个面板使用GribBagLayout作为布局管理器后,把JTextPane加入到里面,JTextPane总是以最小化的形式出现?如果把JTextPane装入JScrollPane再加入面板,同样也是以最小化的形式出现,当我输入文字的时候,它就会随之不断扩大。如何能让它以我设定的固定大小出现,而不会随着我往里面输入文字而变化大小?(假设这个大小是(400,300))附:我继承自JTextPane的类import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.*;
import java.io.*;class ColorText extends JTextPane
{
private ColorText colorText;
private ImageIcon icon;
private Image image;
private static SimpleAttributeSet fontStyle;
public ColorText(String imageName, String description) 
{
super();
icon = new ImageIcon(imageName, description);
image=icon.getImage();
setOpaque(false);
setFont(new Font("宋体",Font.PLAIN,14));
fontStyle=new SimpleAttributeSet();
}

public void paintComponent(Graphics g) 
{
g.drawImage(image,5,15,this);
super.paintComponent(g);
}

public Dimension getPreferredSize() 
{
Insets insets = getInsets();
return new Dimension(
icon.getIconWidth() + insets.left + insets.right, 
icon.getIconHeight() + insets.top + insets.bottom);
}

public void append(String s)
{
Document d=getDocument();
try
{
d.insertString(d.getLength(),s,fontStyle);
}
catch(BadLocationException ble){}
}

public SimpleAttributeSet getFontStyle()
{
return fontStyle;
}

public void setFontStyle(SimpleAttributeSet fontStyle)
{
this.fontStyle=fontStyle;
}

public void setFontColor(Color color)
{
StyleConstants.setForeground(fontStyle,color);
}
public void setFontSize(int size)
{
System.out.println(fontStyle.toString());
StyleConstants.setFontSize(fontStyle,size);
System.out.println(fontStyle.toString());
}
public void setFontType(int fstyle)
{
if(fstyle==Font.ITALIC)
StyleConstants.setItalic(fontStyle,true);
if(fstyle==Font.BOLD)
StyleConstants.setBold(fontStyle,true);
if(fstyle==Font.PLAIN)
{
StyleConstants.setItalic(fontStyle,false);
StyleConstants.setBold(fontStyle,false);
}
}
}