Mục tiêu cuối cùng của tôi là có một hình ảnh nền JTextArea
. Tôi tìm thấy mã trực tuyến cho thấy tôi làm thế nào để làm điều này, nhưng bây giờ tôi đang có một vấn đề với văn bản được trên đầu trang của hình ảnh.Đệm nội bộ cho JTextArea với nền Hình ảnh
này phải là những gì tôi muốn nói:
Có cách nào tôi có thể thêm một loại thụt vào bên trong để các văn bản không chồng lấn lên các cạnh của hình ảnh?
Đây là hình ảnh bong bóng nhận xét thô.
Đây là mã:
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, 0, 0, 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);
}
}
Dưới đây là hình ảnh cho chat1: https://lh4.googleusercontent.com/-uhDR71VGYfA /TuRNiM2DfOI/AAAAAAAAADU/DqOuEi8c3lg/s334/chat1.jpg – user1091968
1) Tại sao một 'JTextArea' (trái ngược với một' JLabel' hoặc thành phần syled khác)? 2) Tôi nghĩ rằng điều này tốt nhất nên được thực hiện với một ** tùy chỉnh biên giới **, một 'CommentBubbleBorder'. 3) Các thành phần Swing nên ghi đè 'paintComponent (Graphics)', thay vì 'paint (Graphics)'. –
Không phải là lúc bạn chọn câu trả lời cho một số câu hỏi trước đó của bạn (http://stackoverflow.com/users/1091968/user1091968?tab=questions)? –