java – 带有背景图像的JTextArea的内部填充

前端之家收集整理的这篇文章主要介绍了java – 带有背景图像的JTextArea的内部填充前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的最终目标是拥有一个带有背景图像的JTextArea.我发现在线代码向我展示了如何做到这一点,但现在我遇到的问题是文本位于图像之上.

这就是我的意思:

有没有什么方法可以添加一种向内缩进,以便文本不与图像的边缘重叠?

这是原始评论气泡图像.

这是代码

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.GrayFilter;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class myBackgroundSample {

    String file;

    public myBackgroundSample(String i) {
        file = i;
        setItUp();
    }

    public void setItUp() {
        final ImageIcon imageIcon = new ImageIcon(file);
        JTextArea textArea = new JTextArea() {
            Image image = imageIcon.getImage();

            public void paint(Graphics g) {
                setOpaque(false);
                g.drawImage(image,this);
                super.paint(g);
            }
        };
        JFrame frame = new JFrame("Background Example");
        frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
        JScrollPane scrollPane = new JScrollPane(textArea);
        Container content = frame.getContentPane();
        content.add(scrollPane,BorderLayout.CENTER);
        frame.setSize(400,400);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String right = "chat1.jpg";
        myBackgroundSample temp = new myBackgroundSample(right);

    }
}

解决方法

使用扩展 AbstractBorder自定义边框.这样的东西:

获得确切的形状和颜色留给读者练习.

猜你在找的Java相关文章