Dude,在包裹上foo.bar
我有一个JTextPane
班级(MyJTextPane
)和一张图片back.png
。
现在我将使用Text窗格在CSS中执行某些操作,我喜欢使用嵌入式back.png
文件作为固定滚动,包括水平和垂直中心位置。
对于这样的css没有任何意外。
body {
background: url('back.png') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
我的问题是,是否可以将此属性应用于JTextPane
?如果是,那么我如何在这里指出嵌入的图像资源呢?
如果没有,那么还有其他解决方案吗?
提前谢谢。
答案 0 :(得分:3)
在JViewport的背景上进行自定义绘制:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class ViewportBackground
{
private static void createAndShowUI()
{
JTextArea textArea = new JTextArea(5, 30);
textArea.setOpaque(false);
JViewport viewport = new JViewport()
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
int w = this.getWidth();
int h = this.getHeight();
g.setColor(new Color(0, 0, 255, 50));
g.fillRect(0, 0, w/2, h/2);
g.setColor(new Color(255, 0, 0, 50));
g.fillRect(w/2, 0, w, h/2);
g.setColor(new Color(0, 255, 0, 50));
g.fillRect(0, h/2, w, h/2);
}
};
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewport(viewport);
scrollPane.setViewportView( textArea );
JFrame frame = new JFrame("SSCCE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add( scrollPane );
frame.setLocationByPlatform( true );
frame.pack();
frame.setVisible( true );
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowUI();
}
});
}
}
此示例仅绘制带图案的背景,您可以轻松使用Graphics.drawImage(...)
方法为背景绘制图像。