注意:
请查看文本提示,以更完整地实现以下代码,并提供更多功能。
我把一些简单的东西放在一起。我敢肯定你可以整理一下。由于代码可以在JTextField上工作,因此您需要获取组合框的编辑器。我对Glazed列表的实现方式一无所知,所以我只是猜测它会为您工作。
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;import javax.swing.text.*;public class Textprompt extends JLabel implements FocusListener, documentListener{ private JTextComponent component; private document document; public Textprompt(String text, JTextComponent component) { this.component = component; document = component.getdocument(); setText( text ); setFont( component.getFont() ); setBorder( new EmptyBorder(component.getInsets()) ); component.addFocusListener( this ); document.adddocumentListener( this ); component.add( this ); } public void checkForprompt() { if (document.getLength() == 0) setSize( component.getSize() ); else setSize(0, 0); }// Implement FocusListener public void focusGained(FocusEvent e) { checkForprompt(); } public void focusLost(FocusEvent e) { setSize(0, 0); }// Implement documentListener public void insertUpdate(documentEvent e) { checkForprompt(); } public void removeUpdate(documentEvent e) { checkForprompt(); } public void changedUpdate(documentEvent e) {} public static void main(String[] args) { JPanel panel = new JPanel(); JTextField tf1 = new JTextField(10); panel.add(tf1); JTextField tf2 = new JTextField(10); panel.add(tf2); new Textprompt("First Name", tf1); new Textprompt("Last Name", tf2); Jframe frame = new Jframe(); frame.setDefaultCloseOperation( Jframe.EXIT_ON_CLOSE ); frame.add(panel); frame.pack(); frame.setLocationRelativeTo( null ); frame.setVisible(true); }}


