2013-05-07 5 views
9

मेरे पास Graphics2D ऑब्जेक्ट है और मैं ऑब्जेक्ट की पृष्ठभूमि सेट अप करना चाहता हूं। इसमें setBackground विधि है, जिसमें रंग पैरामीटर है। इस तरह मैं पृष्ठभूमि का रंग सेट कर सकता हूं।जावा ग्राफिक्स 2 डी पारदर्शी पृष्ठभूमि

मेरा प्रश्न है: मैं ऑब्जेक्ट की पृष्ठभूमि की पारदर्शिता कैसे सेट कर सकता हूं? क्या मैं इसे किसी भी तरह से पूरी तरह से पारदर्शी होने के लिए कह सकता हूं? क्या मैं इसे पूरी तरह से अपारदर्शी कह सकता हूं? क्या मैं इसे किसी भी तरह से 0.8 पारदर्शिता/अस्पष्टता के बारे में बता सकता हूं? मैं इन मानों को कैसे सेट कर सकता हूं?

मैंने देखा है कि TRANSLUCENT और OPAQUE नामक पूर्वनिर्धारित मान हैं, लेकिन मुझे यकीन नहीं है कि मैं उनका उपयोग कैसे कर सकता हूं।

शायद सही उपयोग एक अंतर पैरामीटर के साथ रंग के निर्माता को कॉल करना है?

+2

रंग चार पैरामीटर आर, जी, बी, ए लेता है। एक अल्फा या पारदर्शिता घटक है जिसे आप सेट करना चाहते हैं। –

+0

आर = 0, जी = 0, बी = 0 सेटिंग पृष्ठभूमि को सफेद बनाने के लिए बनाएगा, लेकिन एक = 1 को इसे पारदर्शी – user2277872

+2

के रूप में रखेगा हां, अब मैं इसे देख सकता हूं। हम "ए" को कैसे परिभाषित कर सकते हैं? क्या यह 0 और 255, 0 के बीच एक मान है जिसका अर्थ यह अपारदर्शी है, 255 जिसका अर्थ है कि यह पारदर्शी है? –

उत्तर

14

आप एक पारदर्शिता निर्दिष्ट करके एक रंग वस्तु बना सकते हैं। उदाहरण के लिए निम्नलिखित कोड 50% पारदर्शिता के साथ एक लाल रंग का निर्माण

Color c=new Color(1f,0f,0f,.5f); 
+1

और मैं अपने ग्राफिक्स 2 डी की पृष्ठभूमि कैसे सेट कर सकता हूं? एक सेटबैकग्राउंड फ़ंक्शन है, लेकिन यह पृष्ठभूमि सेट नहीं करता है। generator.setBackground (सेटिंग्स.canvascolor), जहां सेटिंग्स.canvascolor रंग है। BLUE, लेकिन दिन के अंत में कैनवास अभी भी सफेद है। –

+4

मैंने ग्राफिक्स 2 डी ऑब्जेक्ट की पृष्ठभूमि को रंग में सेट करने के लिए कोई अच्छा समाधान नहीं देखा है (इसमें ऐसा करने का एक तरीका है, लेकिन विधि का कोई प्रभाव नहीं पड़ता है), इसलिए मैंने दिए गए रंग के साथ एक आयताकार खींचा है कैनवास भरने के लिए। –

+0

@ लाजोस: ... जिसका अर्थ है: '#setcolor()' + '#fillRect()' सही? – Campa

3

आप निम्नलिखित तरीके से रंग के निर्माता कॉल कर सकते हैं:

Color c = new Color(r,g,b,a); 

जहां एक अल्फा (पारदर्शिता) मूल्य है।

सभी जावा वर्गों के साथ, आप सरकारी एपीआई में यह जानकारी प्राप्त कर सकते हैं: http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html

यह एक बहुत अच्छी संसाधन है और तुम यहाँ पर एक जवाब के लिए इंतजार को छोड़ कर सकते हैं।

2

जावा वास्तव में इस सामान पर बहुत अच्छी है, तो आप पारदर्शिता और भी बहुत कुछ हासिल कर सकते हैं। अधिक जानकारी के लिए

package misc; 

import java.awt.*; 
import javax.swing.*; 
import static java.awt.GraphicsDevice.WindowTranslucency.*; 

public class TranslucentWindowDemo extends JFrame { 
    public TranslucentWindowDemo() { 
     super("TranslucentWindow"); 
     setLayout(new GridBagLayout()); 

     setSize(300,200); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     //Add a sample button. 
     add(new JButton("I am a Button")); 
    } 

    public static void main(String[] args) { 
     // Determine if the GraphicsDevice supports translucency. 
     GraphicsEnvironment ge = 
      GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     GraphicsDevice gd = ge.getDefaultScreenDevice(); 

     //If translucent windows aren't supported, exit. 
     if (!gd.isWindowTranslucencySupported(TRANSLUCENT)) { 
      System.err.println(
       "Translucency is not supported"); 
       System.exit(0); 
     } 

     JFrame.setDefaultLookAndFeelDecorated(true); 

     // Create the GUI on the event-dispatching thread 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       TranslucentWindowDemo tw = new TranslucentWindowDemo(); 

       // Set the window to 55% opaque (45% translucent). 
       tw.setOpacity(0.55f); 

       // Display the window. 
       tw.setVisible(true); 
      } 
     }); 
    } 
} 

देखो here: यहाँ एक सरल पारदर्शी खिड़की मैं ओरेकल से copied के लिए कुछ कोड है।

+1

मैं एक ग्राफिक्स 2 डी ऑब्जेक्ट का उपयोग कर रहा हूं, जेएफआरएम नहीं। –

0

यदि आप जेपीनल का उपयोग कर रहे हैं तो आप इसे आजमा सकते हैं: jPanel1.setOpaque (false);

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