2010-02-27 24 views
15

आप JComponent (पैनल, फ्रेम, विंडो इत्यादि) पूर्णस्क्रीन कैसे बनायेंगे, ताकि यह विंडोज़ स्टार्ट बार सहित स्क्रीन पर सबकुछ ओवरलैप कर सके?जावा पैनल पूर्णस्क्रीन बनाना

मैं रिज़ॉल्यूशन या ग्राफिक्स डिवाइस जैसे बिटडिप्थ इत्यादि के साथ कुछ भी नहीं बदलना चाहता, मैं बस बाकी सब कुछ ओवरलैप करना चाहता हूं।

+1

अब तक दिए गए उत्तरों के साथ क्या गलत है? – Thomas

+0

हाँ, गंभीरता से। इसे एडमस्की को दें - आपको बेहतर जवाब नहीं मिलेगा। –

+0

मेरा मतलब है, जब तक आप वर्तमान उत्तरों के बारे में जो पसंद नहीं करते हैं उस पर कोई सुराग नहीं देते हैं, कोई भी किसी और के साथ आने में सक्षम नहीं होगा (या तैयार)। – Thomas

उत्तर

11

आप एक कंटेनर स्क्रीन को भरने के लिए अनुमति देता है codes in this page में से कुछ की कोशिश कर सकते हैं, (इसलिए यह एक व्यक्ति घटक के लिए एक समाधान नहीं है, लेकिन एक JFrame की तरह एक कंटेनर के भीतर घटकों का एक सेट के लिए)

public class MainWindow extends JFrame 
{ 
    public MainWindow() 
    { 
    super("Fullscreen"); 
    getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize()); 
    pack(); 
    setResizable(false); 
    show(); 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() 
     { 
     Point p = new Point(0, 0); 
     SwingUtilities.convertPointToScreen(p, getContentPane()); 
     Point l = getLocation(); 
     l.x -= p.x; 
     l.y -= p.y; 
     setLocation(l); 
     } 
    }); 
    } 
    ... 
} 
+0

क्या आप कृपया बता सकते हैं कि यह क्यों काम करता है। विशेष रूप से रननेबल में भाग, जैसे 'l.x - = p.x;' के बाद वाली रेखाएं। यह काम करता है, लेकिन मैं इसे पूरी तरह से समझना चाहता हूं। – Connorelsea

+0

@ कॉनोरोरसेसा यह पूछना आसान हो सकता है कि एक अलग प्रश्न में: 5 + साल बाद, और सभी विवरण याद नहीं रखें। – VonC

6

आप निम्न एपीआई का उपयोग करने की जरूरत है: http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html

पूर्ण स्क्रीन जा रहे एक बड़े पैनल बनाने के रूप में सरल नहीं है, आप अंतर्निहित ओएस ग्राफिक्स में देखने की जरूरत है। लेकिन आपके जेपीनल कोड को ठीक से अनुवाद करना चाहिए।

17

जावा की पूर्ण-स्क्रीन मोड API का वर्णन करने वाले this tutorial देखें।

उदाहरण कोड (ट्यूटोरियल से लिया गया)। ध्यान दें कि कोड Window पर चल रहा है, इसलिए आपको ऐसा करने के लिए Window (उदा। JFrame) के साथ अपना JPanel एम्बेड करना होगा।

GraphicsDevice myDevice; 
Window myWindow; 

try { 
    myDevice.setFullScreenWindow(myWindow); 
    ... 
} finally { 
    myDevice.setFullScreenWindow(null); 
} 
1

मुझे ऐसा करने के लिए बहुत कुछ खोजना होगा। यहां चरणों से पूरी तरह से एक वर्किंग वर्जन है, ताकि मैं इसे बाद में भी ढूंढ सकूं, और इसका इस्तेमाल कर सकूं।

चरण 1: एक फ़ाइल fullscreen.java

चरण 2 कहा जाता है बनाने के लिए: इस कोड को कॉपी और के रूप में यह है चिपकाएं:

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class fullscreen extends Window 
{ 
    private Button button; 

    public fullscreen() 
    { 
    super(new Frame()); 
    button = new Button("Close"); 
    button.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     System.exit(0); 
     } 
    }); 

    setLayout(new FlowLayout()); 
    add(button); 

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    setBounds(0,0,screenSize.width, screenSize.height); 
    } 

    public static void main(String[] args) 
    { 
    // This will take over your whole screen tested and works in my: 
    // Fedora 12/13/14 
    // CentOS 5.0 
    // if this works for you, in other platforms, please leave a comments which OS it worked. 
    // happy coding! 
    new fullscreen().setVisible(true); 
    } 

} 

चरण 3: कोड संकलन और चलाने

किया हुआ।

0

यदि मैं आप थे तो मैं जावा को जेफ्रेम की सीमा खींचने की कोशिश नहीं करता, फिर इसे सभी स्क्रीन लेता हूं।

import java.awt.GraphicsEnvironment; 
import java.awt.Rectangle; 

import javax.swing.JFrame; 


public class FenNoBorder extends JFrame { 

    public FenNoBorder() { 
     setUndecorated(true); 
     setVisible(true); 
     GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds(); 
     setBounds(maximumWindowBounds); 
    } 
} 
संबंधित मुद्दे