2014-01-15 77 views
1

我知道如何將背景圖像添加到JPanel(創建ImagePanel類來擴展JPanel並重載它的paintComponent()方法),但是這個技巧與JTextField無法正常工作:顯示圖像,但不是文本。 那麼,如何正確地將背景圖片添加到JTextField?如何將背景圖片添加到JTextField?

回答

4

您需要將文本字段添加到標籤。例如:

JTextField textField = new JTextField(10); 
textField.setOpaque(false); 
JLabel label = new JLabel(new ImageIcon(...)); 
label.setLayout(new BorderLayout()); 
label.add(textField); 
+0

感謝BRO!這很好! – RussianVodka

+0

還有一個問題:我可以用JComboBox文本字段做同樣的事嗎? – RussianVodka

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);} 
} 
+0

謝謝!現在測試... – RussianVodka

+0

現在我有白色背景和文字仍然不顯示。 Theres a [code](http://pastebin.com/U1PhKU91)。 不要擔心:面板添加到JFrame。 – RussianVodka

+0

現在我改變了一些[代碼](http://pastebin.com/330meV64)和圖像顯示出來,但仍然無法在JTextField中看到文本,現在甚至無法專注於它。 – RussianVodka

相關問題