Kiểu giao diện này chúng ta bắt
gặp rất nhiểu trong các trình duyệt web hay ứng dụng, với java chúng ta
cũng có thể làm như thế và vô cùng đơn giản là khác :D
Chúng ta sẽ @Override phương thức paintComponent(Graphics g) của JtextField Sau đó sử dụng đối tượng Icon để paintIcon(JtextField, Graphics, x, y); Như
vậy cơ bản là cái Icon đã hiện trên Jtexfield của chúng ta rồi. Tuy
nhiên sẽ có vấn đề là con trỏ chuột nằm trong Jtexfield sẽ bị khuất bởi
Icon. Để khắc phục chúng ta chỉ cần setMargin(new Insets(x, y, t, z)); là xong
package AddIconToJtextFiled;
import java.awt.Graphics; import java.awt.Insets; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JTextField;
/** * * @author Admin * homepage: http://Afgame.ucoz.com */ public class Test extends JFrame {
Icon icon = new ImageIcon(getClass().getResource("ico.png")); JTextField jtf = new JTextField(30) {
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); int x = icon.getIconWidth(); int y = icon.getIconHeight(); icon.paintIcon(this, g, 0, 0); setMargin(new Insets(2, x, 2, 0)); } };
public Test() { add(jtf); setDefaultCloseOperation(3); pack(); }
public static void main(String[] args) { new Test().setVisible(true); } }
|