दिलचस्प पोस्ट
लिनक्स पर जावा के साथ सक्रिय निर्देशिका के विरुद्ध प्रमाणन नेविगेशन बार में वापस बटन जोड़ना जावा में वर्ष का जूलियन दिन CUDA के साथ मैट्रिक्स पंक्तियाँ कम करें क्या eval () और नया फ़ंक्शन () एक ही बात है? वीआईएम अक्षम स्वचालित न्यूलाइन फाइल का अंत IOS में एक छप स्क्रीन को लागू करना कार्य टास्क हर एक्स मिनट के साथ विंडोज टास्क समयबद्धक CSS3 पर सीमा के साथ तरंग (या आकार?) applescript; अंतरिक्ष संख्या N में एक ऐप खोलना ValueError: अज्ञात एमएस कंपाइलर संस्करण 1 9 00 घातक त्रुटि: 300 सेकंड का अधिकतम निष्पादन समय पार हो गया एचटीएमएल / पीएचपी के साथ एक्सएसएस कैसे रोकें? स्पार्क में डिफ़ॉल्ट विभाजन योजना jquery html () कॉलबैक फ़ंक्शन

अलग ढाल के साथ स्विंग बटन को फिर से रंगना

मैं जेबटन को एक अलग ढाल के साथ कैसे पुन: कर सकता हूं जब इसे क्लिक किया जाता है मैंने शुरुआती पेंट करने के लिए पेंट कम्पेनेंट (ग्राफ़िक्स) विधि को ओवरराइड कर दिया है I Onclick मैं इसे फिर से करना चाहता हूं लेकिन मैं यह नहीं चाहता कि उपयोगकर्ता इसे एक्शनएर्फेरड इवेंट में करना चाहता है क्योंकि मैं चाहता हूं कि यह एक स्टैंडअलोन घटक हो।

कोई भी विचार कैसे प्राप्त किया जा सकता है।

धन्यवाद

Solutions Collecting From Web of "अलग ढाल के साथ स्विंग बटन को फिर से रंगना"

सबसे आसान तरीका setPressedIcon() का उपयोग setPressedIcon() , लेकिन आप ButtonUI प्रतिनिधि में paint() ओवरराइड भी कर सकते हैं, जैसा कि इस उदाहरण में दिखाया गया है।

और एक और मनोरंजक उदाहरण:

 import java.util.List; import javax.swing.*; import javax.swing.plaf.ColorUIResource; public class GradieltButton { public static void main(String[] args) { Object grad = UIManager.get("Button.gradient"); List gradient; if (grad instanceof List) { gradient = (List) grad; System.out.println(gradient.get(0)); System.out.println(gradient.get(1)); System.out.println(gradient.get(2)); System.out.println(gradient.get(3)); System.out.println(gradient.get(4)); //gradient.set(2, new ColorUIResource(Color.blue)); //gradient.set(3, new ColorUIResource(Color.YELLOW)); //gradient.set(4, new ColorUIResource(Color.GREEN)); //gradient.set(2, new ColorUIResource(221, 232, 243));//origal Color //gradient.set(2, new ColorUIResource(255, 255, 255));//origal Color //gradient.set(2, new ColorUIResource(184, 207, 229));//origal Color gradient.set(2, new ColorUIResource(190, 230, 240)); gradient.set(3, new ColorUIResource(240, 240, 240)); gradient.set(4, new ColorUIResource(180, 200, 220)); //UIManager.put("Button.background", Color.pink); } SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new GradieltButton().makeUI(); } }); } public void makeUI() { JButton button = new JButton("Click"); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(button); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } } 

@ShaggyInjun ने किसी कारण के लिए मेरे UIManager.get ("बटन.ग्रीडियंट") एक रिक्त वापसी देता है। क्या आप जान लेंगे क्यों? मुझे पता है कि मैं मेटलथीम का उपयोग कर रहा हूं।

Key in UIManager यह Key in UIManager देता है ( अधिक UIManagerDefaults @camickr द्वारा )

[0.3, 0.0, javax.swing.plaf.ColorUIResource [r = 221, g = 232, b = 243], javax.swing.plaf.ColorUIResource [r = 255, g = 255, b = 255], javax.swing .plaf.ColorUIResource [आर = 184, जी = 207, ख = 229]]

को ColorUIResource बजाय ColorUIResource का उपयोग करने की आवश्यकता है, Button.gradien arrays of Colors and Insets ColorUIResource == ColorUIResource