我知道如何将背景图像添加到JPanel(创建扩展JPanel的ImagePanel类并重载它的paintComponent()方法),但这个技巧使JTextField无法正常工作:显示图像,但不显示文本。 那么,如何正确地将背景图像添加到JTextField?
答案 0 :(得分:4)
您需要将文本字段添加到标签中。类似的东西:
JTextField textField = new JTextField(10);
textField.setOpaque( false );
JLabel label = new JLabel( new ImageIcon(...) );
label.setLayout( new BorderLayout() );
label.add( textField );
答案 1 :(得分:1)
在线为您找到这个。
import java.awt.*;
import javax.swing.*;
class Testing extends JFrame
{
public Testing()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel p = new JPanel(new BorderLayout());
JTextField tf = new JTextField(5);
JLabel label = new JLabel(new ImageIcon("Test.gif"));
label.setOpaque(true);
label.setBackground(tf.getBackground());
label.setPreferredSize(new Dimension(label.getPreferredSize().width,tf.getPreferredSize().height));
p.setBorder(tf.getBorder());
tf.setBorder(null);
p.add(label,BorderLayout.WEST);
p.add(tf,BorderLayout.CENTER);
JPanel p1 = new JPanel();
p1.add(p);
getContentPane().add(p1);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args){new Testing().setVisible(true);}
}