मैं स्विंग के साथ एक जीयूआई बनाने की कोशिश कर रहा हूं। मेरी समस्या यह है कि मेरे पास एक टेक्स्टफील्ड है, लेकिन मैं चाहता हूं कि यह "प्लेसहोल्डर" (HTML में) जैसा हो। मैंने यहां और वहां पढ़ा है कि यह टेक्स्टफील्ड के पेंट() को ओवरराइड करके किया जा सकता है।जावा - टेक्स्टफील्ड पर प्लेसहोल्डर
चूंकि मेरा कोड जेनरेट किया गया है, मुझे पता चला कि मुझे जेनरेट किए गए कोड को ओवरराइड करने के लिए "कस्टम क्रिएशन कोड" का उपयोग करने की आवश्यकता है।
यहाँ है कि मैं क्या "कस्टम निर्माण कोड" क्षेत्र
new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if (test == null || test.length() < 1) {
g.setColor(Color.red);
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
}
यह अब मैं पाठ फ़ील्ड को देखने के लिए निम्न उत्पादन
javax.swing.JTextField username = new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if (test == null || test.length() < 1) {
g.setColor(Color.red);
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
};
उत्पन्न करता है लेकिन इसमें कोई बात नहीं है में डाल दिया है, शायद मुझे कुछ घटनाओं पर कुछ फ़ंक्शन जोड़ने की ज़रूरत है, लेकिन मुझे यकीन नहीं है।
अगर कोई हाथ उधार दे तो मैं आभारी रहूंगा।
संपादित करें: http://davidwalsh.name/demo/html5-placeholder.php
भी [इस डुप्लिकेट प्रश्न] पर जवाब देखें (https://stackoverflow.com/q/16213836/642706)। –