我正在编写一个聊天程序,我试图通过向主JPanel(构建所有内容的那个)添加背景图像来使其更有趣。当我尝试使用代码
更改JTextField或JTextArea 50%的透明度时MainPanel = new JPanel(){
@Override
public void paintComponent(Graphics g) {
ImageIcon im = new ImageIcon("background.jpg");
Image i = im.getImage();
g.drawImage(i,0,0,this.getSize().width,this.getSize().height,this);
}
};
...
outputWindow.setBackground(new Color(0,0,0,128));
其中'outputWindow'是添加到'MainPanel'的JTextArea,一旦我在该区域显示一些文本,我会得到很多乱码。 Screenshot of the problem
我按顺序键入“hi”和“hello world”,你可以在输出屏幕的顶部看到,但有没有办法摆脱额外的乱码?
答案 0 :(得分:0)
对于部分透明的每个Swing组件,请务必致电setOpaque(false);
https://tips4java.wordpress.com/2009/05/31/backgrounds-with-transparency/