2010-01-13 17 views
13

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

मैं यह कैसे कर सकता हूं?

उत्तर

2

आप इसके बजाय एक JWindow का उपयोग करने का प्रयास कर सकते हैं।

0

setUndecorated(true); पर कॉल जोड़ने का प्रयास करें। यह विंडो प्रबंधक को टाइटल बार और विंडो बटन जोड़ने के लिए नहीं बताता है।

नोट: फ्रेम प्रदर्शित नहीं होने पर इसे कॉल किया जाना चाहिए।

+2

दुर्भाग्य से, कम से कम उस सिस्टम पर अनिश्चित 'जेएफआरएएम' विंडो टास्कबार में दिखाई देती है, जिसे मैं अभी परीक्षण कर रहा हूं (विंडोज 7)। –

+0

आह, पहले पढ़ने पर याद किया। फिर आप एक गैर-मोडल 'JDialog' का उपयोग करना चाहते हैं। यह वही व्यवहार करेगा, लेकिन टाइटलबार पर न्यूनतम/अधिकतम बटन नहीं होगा क्योंकि टास्कबार उपस्थिति के बिना कम से कम कोई समझ नहीं आता है। अब, यदि आप एक अधिसूचना पॉपअप करने की कोशिश कर रहे हैं जहां इसकी कोई शीर्षक पट्टी नहीं है, कोई सीमा नहीं है, और कोई टास्कबार उपस्थिति नहीं है, तो आप JWindow को देखना चाहेंगे। –

25

यदि आप खिड़की को बस दिखाना चाहते हैं और न तो शीर्षक बार है और न ही टास्कबार में दिखाई देता है, तो JWindow का उपयोग करें।

यदि आप खिड़की दिखाना चाहते हैं और टाइटलबार में दिखाई नहीं दे रहे हैं, तो JDialog का उपयोग करें।

+5

यह सही है। जेएफआरएम प्राथमिक एप्लिकेशन विंडो (यानी, एक फ़्रेम वाली विंडो) होने के लिए है। JWindow कोई पॉपअप विंडो है। जेडियलोग तैयार किया गया है, लेकिन इसकी एक द्वितीयक खिड़की है, इसलिए यह टास्कबार में दिखाई नहीं दे रही है। –

+0

1) मैं जेएफआरएएम में टाइटल बार छुपाने के लिए विधि का उपयोग करता हूं frame.setUndecorated (true) ... यह ठीक काम करता है। लेकिन मैं इसके साथ बटन पर क्लिक करना चाहता हूं या फ्रेम पर किसी अन्य क्लिक पर काम करना चाहता हूं। 2) JWindow के साथ शीर्षक बार के साथ कोई जांच नहीं है ... लेकिन फिर हम एक स्थिति से दूसरे स्थान पर विंडो कैसे स्थानांतरित कर सकते हैं। कृपया सुझाव दें कि क्या आपको कोई विचार है या नहीं। – CoDe

+0

स्काइप, ड्रॉपबॉक्स, यूटोरेंट जैसे अनुप्रयोगों की कल्पना करें। वे फ़्रेम की गई विंडो को छिपाते हैं और टास्कबार आइकन भी छिपाते हैं।यह ऑपरेशन * ट्रे को कम करने * है और यह jFrame के साथ भी ऐसा करने के लिए पूरी तरह मान्य है। –

2

बस एक JWindow का उपयोग करें ...

import javax.swing.JWindow; 
import java.awt.Toolkit; 
import java.awt.Dimension; 

public class Notification extends JWindow { 
    private final int WIDTH = 200; 
    private final int HEIGHT = 30; 

    public Notification() { 
     positionWindow(); 
     setVisible(true); 
    } 

    // Place the window in the bottom right corner of the screen 
    private void positionWindow() { 
     Toolkit aToolkit = Toolkit.getDefaultToolkit(); 
     Dimension screen = aToolkit.getScreenSize(); 
     int xPosition = screen.width - (WIDTH + 10); // Right edge of the screen 
     int yPosition = screen.height - (HEIGHT + 10); // Bottom edge of the screen 
     setBounds(xPosition, yPosition, WIDTH, HEIGHT); 
    } 
} 
1
/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package javaapplication4; 

import javax.swing.JFrame; 

/** 
* 
* @author ravi 
*/ 
public class Main extends JFrame{ 

    /** 
    * @param args the command line arguments 
    */ 
    Main() 
    { 
     setState(JFrame.ICONIFIED); 
     setSize(400, 400); 
     setVisible(true); 
    } 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Main m=new Main(); 
    } 

} 
3

आपको बस इतना करना होगा अपने JFrame "प्रकार" स्थापित करने के लिए संपत्ति के लिए "उपयोगिता" है और वहाँ तुम्हारे पास है!

+0

बिल्कुल वर्णनात्मक नहीं है, और मेरे शोध से ऐसी चीज नहीं है, यहां तक ​​कि विरासत विंडो के नीचे भी .setType() कोई उपयोगिता प्रकार नहीं है। –

+0

आप गलत हैं, @ सैमीगुरुगाची। http://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#setType%28java.awt.Window.Type%29 http://docs.oracle.com/javase/7 /docs/api/java/awt/Window.Type.html – ryvantage

+0

उत्कृष्ट! यह मेरे लिए पूरी तरह से काम किया। // विंडोज़ टास्क बार से आइकन निकालें। सेट टाइप (Type.UTILITY); – jfajunior

2

इस का प्रयोग करें, लेकिन यह JDK 1.7 पर ही काम करते हैं या OpenJDK 1.7:

// only on JDK 1.7 or openJDK 1.7 

JFrame f = new JFame(" frame not displayable in the task bar "); 
    ... 
    ... 
    f.setType(Type.POPUP); // No Place on task bar, but stays on top of all others system applications frame 
5

आप प्रकार "संपत्ति को" उपयोगिता "" आपको बस इतना करना होगा अपने JFrame सेट करने के लिए है "और वहाँ यह! "

यह कम से कम जावा 1.7 के तहत काम करता है, यह टाइप.पॉपअप के बजाय उपरोक्त "myframe" .setType (Type.UTILITY) जैसा ही है। परीक्षण प्रकार पॉपअप (जीत 7 के तहत) टास्कबार से इसे हटाने के लिए काम नहीं करता है, Type.UTILITY करता है।

असज्जित वांछित परिणाम

public class Window extends Container implements Accessible { 
    /** 
    * Enumeration of available <i>window types</i>. 
    * 
    * A window type defines the generic visual appearance and behavior of a 
    * top-level window. For example, the type may affect the kind of 
    * decorations of a decorated {@code Frame} or {@code Dialog} instance. 
    * <p> 
    * Some platforms may not fully support a certain window type. Depending on 
    * the level of support, some properties of the window type may be 
    * disobeyed. 
    * 
    * @see #getType 
    * @see #setType 
    * @since 1.7 
    */ 
    public static enum Type { 
     /** 
     * Represents a <i>normal</i> window. 
     * 
     * This is the default type for objects of the {@code Window} class or 
     * its descendants. Use this type for regular top-level windows. 
     */ 
     NORMAL, 

     /** 
     * Represents a <i>utility</i> window. 
     * 
     * A utility window is usually a small window such as a toolbar or a 
     * palette. The native system may render the window with smaller 
     * title-bar if the window is either a {@code Frame} or a {@code 
     * Dialog} object, and if it has its decorations enabled. 
     */ 
     UTILITY, 

     /** 
     * Represents a <i>popup</i> window. 
     * 
     * A popup window is a temporary window such as a drop-down menu or a 
     * tooltip. On some platforms, windows of that type may be forcibly 
     * made undecorated even if they are instances of the {@code Frame} or 
     * {@code Dialog} class, and have decorations enabled. 
     */ 
     POPUP 
    } 
12

JDK 1.7 आप विधि setType लाता है (कि के रूप में खिड़की से शीर्षक पट्टी, टास्कबार नहीं हटाता है) नहीं होगा। निम्नलिखित विधि का प्रयोग करें।

JFrame.setType(javax.swing.JFrame.Type.UTILITY) 
+1

'java.awt.Window # setType (java.awt.frame.Type.UTILITY)' – NateS

+0

लिनक्स में काम नहीं करता है। विंडोज़ में काम करता है। मैक के बारे में पता नहीं है। –

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