2010-01-13 30 views

Respuesta

2

Podría intentar usar una ventana J en su lugar.

0

Intente agregar una llamada al setUndecorated(true);. Le dice al administrador de ventanas que no agregue la barra de título y los botones de la ventana.

Nota: debe invocarse mientras no se muestra el marco.

+2

Desafortunadamente, las ventanas 'JFrame' sin decorar aún aparecen en la barra de tareas, al menos en el sistema que estoy probando en este momento (Windows 7). –

+0

Ah, lo perdí en la primera lectura. Entonces desea ver utilizando un 'JDialog' no modal. Se comportará igual, pero no tendrá los botones minimizar/maximizar en la barra de título, ya que minimizar sin la presencia de una barra de tareas no tiene sentido. Ahora, si está intentando hacer una ventana emergente de notificación donde no tiene barra de título, ningún borde ni presencia en la barra de tareas, es posible que desee mirar JWindow. –

25

Si desea que aparezca la ventana y no tenga una barra de título ni aparezca en la barra de tareas, use un JWindow.

Si desea que aparezca la ventana y tener una barra de título, pero para que no aparezca en la barra de tareas, utilice un JDialog.

+5

Esto es correcto. JFrame está destinado a ser la ventana principal de la aplicación (es decir, una ventana enmarcada). JWindow es cualquier ventana emergente. JDialog está enmarcado, pero es una ventana secundaria, por lo que no aparece en la barra de tareas. –

+0

1) Uso el método para ocultar la barra de título en JFrame es frame.setUndecorated (true) ... funciona bien. pero quiero trabajar con él al hacer clic en el botón o en cualquier otro clic sobre fotograma. 2) Con JWindow no hay problemas con la barra de título ... pero entonces, ¿cómo podemos mover la ventana de una posición a otra? pls sugieren si tienes alguna idea. – CoDe

+0

Imagine aplicaciones como skype, dropbox, uTorrent. Ocultan la ventana enmarcada y también ocultan el ícono de la barra de tareas.Esta operación está * minimizando a la bandeja * y es perfectamente válido hacerlo con jFrame también. –

2

Sólo tiene que utilizar un 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

Todo lo que tendría que hacer es configurar el "tipo" JFrame propiedad de "utilidad" y ahí lo tienes!

+0

no es descriptivo en absoluto, y de mi investigación no existe tal cosa, incluso bajo Window.setType heredado() no hay tipo de UTILITY. –

+0

Estás equivocado, @SammyGuergachi. 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

¡Excelente! Eso funcionó perfectamente para mí. // Eliminar icono de la barra de tareas de Windows. setType (Type.UTILITY); – jfajunior

2

Uso esto, pero sólo funcionan en JDK 1.7 o 1.7 OpenJDK:

// 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

"Todo lo que tendría que hacer es configurar el JFrame 'tipo' propiedad de 'utilidad' y ahí lo tienes ¡eso!"

Esto funciona, al menos en Java 1.7, es el mismo que el anterior "myframe" .setType (Type.UTILITY) en lugar de Type.POPUP. La ventana emergente de tipo de prueba (en win 7) no funciona para eliminarla de la barra de tareas, Type.UTILITY sí.

sin decorar no tendrá los resultados deseados (como que elimina la barra de título de la ventana, no la barra de tareas)

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 que trae método setType. Use el siguiente método.

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

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

+0

No funciona en Linux. Funciona en Windows. No sé sobre Mac. –

Cuestiones relacionadas