2011-08-30 20 views
6

मेरे पास जेपीटन और कुछ अन्य चीजें हैं, और मैं चाहता हूं कि पूरे पैनल में टूल-टिप हो। जब मैं जेपीनल पर setToolTipText को कॉल करता हूं, तो टूल-टिप केवल जेपीनेल के भीतर खाली रिक्त स्थान में दिखाई देती है।मैं जेपीनल और उसके बच्चों पर टूलटिप कैसे सेट करूं?

क्या जेपीनल पर टूल-टिप सेट करने का कोई तरीका है, जैसे कि यह जेपीनेल और उसके बच्चों पर लागू होता है, या क्या मैं सभी बच्चों पर setToolTipText को कॉल करने के साथ अटक गया हूं?

+1

मुश्किल कहने के लिए कुछ बेहतर ... http://stackoverflow.com/questions/7138914/swing- कैसे-से-create-a-custom-jtooltip-like-widget-that-move-the-mouse/7139057 # टिप्पणी -8561297, लेकिन शायद मैं wong – mKorbel

उत्तर

7

एक पुनरावर्ती विधि बनाएं:

public static void setToolTipRecursively(JComponent c, String text) { 

    c.setToolTipText(text); 

    for (Component cc : c.getComponents()) 
     if (cc instanceof JComponent) 
      setToolTipRecursively((JComponent) cc, text); 
} 

पूर्ण उदाहरण:

public static void main(String[] args) { 

    final JFrame frame = new JFrame("Test"); 

    frame.add(new JLabel("Testing (no tooltip here)"), BorderLayout.NORTH); 

    final JPanel panel = new JPanel(new GridLayout(2, 1)); 
    panel.setBackground(Color.RED); 

    panel.add(new JLabel("Hello")); 
    panel.add(new JTextField("World!")); 

    setToolTipRecursively(panel, "Hello World!"); 

    frame.add(panel, BorderLayout.CENTER); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(400, 300); 
    frame.setVisible(true); 
} 
+0

इस समाधान में, टूलटिप फ़्लिकर और परिवर्तन स्थिति बदलता है उपमहाद्वीपों के बीच पार करना। मैंने एक फॉलो-अप प्रश्न पोस्ट किया है कि कंटेनर को एक इकाई के रूप में कैसे इलाज करना संभव हो सकता है: http://stackoverflow.com/q/8592264/411282 –

संबंधित मुद्दे