मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

ColorPicker

ColorPicker एक रंग चुनता है, hue×saturation के 2-D मैट्रिक्स और एक चमक स्लाइडर के माध्यम से। यह पिकर पैटर्न का अनुसरण करता है (देखें Picker) और alpha चैनल रहित एक Integer ARGB लौटाता है।

🟡 · पैकेज: dev.crossfly.ui.picker · विस्तार करता है: Picker · चयन: आंतरिक ColorMatrix

कब उपयोग करें

  • उपयोगकर्ता को एक रंग चुनने देना (थीम, हाइलाइट, लेबल)।

दिखावट

स्क्रीन के 80%×80% वाली विंडो, जिसमें hue×saturation मैट्रिक्स मुख्य भाग भरता है, एक चमक स्लाइडर, और Cancel तथा Select बटन (Select hex दिखाता है और चुने गए रंग से ही रंगा जाता है)।

संपूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.picker.*;

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Button abrir = new Button("Escolher cor");
      // चुने हुए रंग को ही बटन के बैकग्राउंड के रूप में उपयोग करता है
      abrir.onAction(c ->
      {
         ColorPicker cp = new ColorPicker(0xFF3366CC);
         cp.show(answer ->
         {
            int argb = 0xFF000000 | (Integer) answer;  // alpha जोड़ता है (बिना alpha वाला रंग)
            abrir.style(abrir.getStyle().copy().backColor(argb));
         });
      });
      add(LAY_AUTO, abrir);
   }
}

नीचे दिए गए स्निपेट केवल मूल भाग दिखाते हैं (जो onShow() के अंदर जाता है)। चलाने के लिए, इन्हें ऊपर दिए MainWindow कंकाल में रखें।

बुनियादी उपयोग

ColorPicker cp = new ColorPicker(0xFF3366CC);
cp.show(answer ->
{
   int rgb = (Integer) answer;    // 0x00RRGGBB (बिना alpha)
   int argb = 0xFF000000 | rgb;   // अपारदर्शी रंग के रूप में उपयोग करने हेतु alpha जोड़ें
   botao.style(botao.getStyle().copy().backColor(argb));
});

कंस्ट्रक्टर

कंस्ट्रक्टर विवरण
ColorPicker(int defaultColor) खोलने पर दिखाया जाने वाला प्रारंभिक ARGB रंग।

गुण और अनुकूलन

सदस्य प्रकार क्या करता है
choosenColor int (सार्वजनिक) वर्तमान रंग (alpha रहित RGB); रद्द होने पर -1।
ColorPicker.selectStr (स्थैतिक) String Select बटन के लेबल का उपसर्ग ("Select color ")।

कॉलबैक और इवेंट

कॉलबैक कब ट्रिगर होता है
show(onAnswer) पुष्टि (Select) पर, Integer (alpha रहित RGB) देता है।

परिणाम (महत्वपूर्ण)

getAnswer() Integer लौटाता है (alpha रहित RGB रंग, & 0x00FFFFFF से मास्क किया हुआ), या रद्द होने पर null। प्रकार Integer है (int नहीं) ठीक इसलिए ताकि यह null हो सके।

⚠️ रंग में alpha चैनल नहीं है। यदि आपको अपारदर्शी रंग चाहिए तो 0xFF000000 | लागू करें।

अवस्थाएँ

  • Select → answer = choosenColor और बंद होता है।
  • Cancel → answer = null, choosenColor = -1 और बंद होता है (onAnswer ट्रिगर नहीं होता)।

चुने गए रंग को बटन की पृष्ठभूमि के रूप में उपयोग करना

ColorPicker cp = new ColorPicker(0xFF3366CC);
cp.show(answer ->
{
   int argb = 0xFF000000 | (Integer) answer;
   botao.style(botao.getStyle().copy().backColor(argb));
});

अच्छे तरीके

  • परिणाम को अपारदर्शी रंग के रूप में उपयोग करते समय alpha जोड़ना याद रखें (0xFF000000 |)।
  • रद्दीकरण में null की सिमेंटिक्स न खोने के लिए Integer (न कि int) में cast करें।

सामान्य गलतियाँ

  • परिणाम को alpha रहित उपयोग करना — पारदर्शी निकलता है (0x00RRGGBB)।
  • रद्दीकरण में onAnswer की अपेक्षा करना — ट्रिगर नहीं होता (answer = null)।

यह भी देखें

  • क्षेत्र गाइड: ui/ · रेसिपी: cookbook/
  • पैटर्न का आधार: Picker
क्या यह पृष्ठ उपयोगी था?