Jdesktoppane

eu estou tentando crir um JDesktopFrame mas quando eu executo o programa ele nao aparece e nao sei o que há de errado: to fazendo assim:

import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.GridLayout;

public class Principal extends JFrame{

JDesktopPane desktop;
JInternalFrame frame;

public Principal(){

frame = new JInternalFrame();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);

desktop = new JDesktopPane();

desktop.setVisible(true);
desktop.add(frame);

setContentPane(desktop);

desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);

}

public static void main(String[] args) {
Principal b = new Principal();
}

}

Faltou um .show() aí :wink:

estranho… pois eu coloquei e nao aconteceu nada
e quando eu coloco, na hora de compilar ele pede pra usar um tal de -deprecation

Voce tem que chamar show() no JFrame, nao no JDesktopPane - ou seja, no objeto Principal :wink:

Só para lembrar o metodo show() esta Deprecated use isVisible(true) no lugar dele.

[]'s

Perae… show() no JFrame nao ta deprecado nao, moço :smiley:

Bom CV intaum me mostre onde estou errado…sinceramente não consegui encontrar o metodo show() direto na na classe JFrame, mas somente na Component e está esta deprecado.

[]'s

public class Foo { public static void main(String[] args) { new javax.swing.JFrame("Eu juro que eu nao tou doido!").show(); } }

no código acima

depois do
desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);

coloque show();

pelo menos aqui eu testei e funcionou, mas não sou muito expert em Swing :wink:

[quote=“cv”]public class Foo { public static void main(String[] args) { new javax.swing.JFrame("Eu juro que eu nao tou doido!").show(); } }[/quote]

:smiley: Louco não…como o JFrame vai extendendo algumas classes esse show() pode ser de duas…ou da Window ou da Component. Pelo que vi a unica que esta deprecated é da classe Component.

[]'s

Na função main adicione o .show()


public static void main(String[] args) 
{ 
    Principal b = new Principal(); 
    b.show();
} 

Não querendo ser chato…mas o proprio How to make Frame indica para usar setVisible.

Pelo menos assim garente que não precisará mexer no código quando show() não estiver mais presente…

//1. Optional: Specify who draws the window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);

//2. Create the frame.
JFrame frame = new JFrame(“FrameDemo”);

//3. Optional: What happens when the frame closes?
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//4. Create components and put them in the frame.
//…create emptyLabel…
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

//5. Size the frame.
frame.pack();

//6. Show it.
frame.setVisible(true);

[]'s