Problema JDesktopPane [Resolvido]

8 respostas
A

Ae pessoal eu fiz uma tela principal, coloquei um menu em cima e um JDesktopPane em baixo como eu fasso pras frames abrirem no JDesktopPane ??/

E para que serve o JDesktopPane ??? pq eu tenho q por ele??

8 Respostas

java_Regi

vc Não precisa colocar a JDesktop,
vc coloca se vc quizer…
ela é só para " enfeitar " a tela ,
digamos asssim…

para os frames abrirem na desktop eu creio que é só usar
o JInternalFrame…

procura algo ai sobre ele…
é facil de usar…

falow

A

entaum tah!! digamos q na minha tela pricipal eu tenho um menu cm 3 itens quando clicar nesses itens teria q aparecer o JInternalFrame dentro da desktop… como isso???

java_Regi

vc quer que apareça dentro da desktop ???

se vc quizer vc coloca a desktop no seu frame…
e abre os internalframes na (dentro, encima …) da desktop…

caso vc não colocar uam desktop…

vc faz aparece ele dentro do frame mesmo !

A

simsim!! mais isso eh soh kestaum visual na hora d aparecer naum tenho q fazer nd?!?!

java_Regi

como assim,
na hora de aparecer ???

vc poe os menu lá,
blza!
ai vc adiciona o ActionListener…
esse metodo qndo vc clica no menu ele que vai faze abri o IntenalFrame…

não entendi sua duvida !

java_Regi
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class JInternalFrameExemple extends JFrame implements ActionListener {

private static final long serialVersionUID = 1l;

final JDesktopPane desktop = new JDesktopPane();

private JMenu menu = new JMenu( "menu" );

private JMenuItem menuItem = new JMenuItem( "InternalFrame 1" );

private JMenuItem menuItem2 = new JMenuItem( "InternalFrame 2" );


public JInternalFrameExemple() {

super( "JInternalFrame Exemple" );

setSize( 500, 400 );
setLocationRelativeTo( this );
setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );

getContentPane().add( desktop );

JMenuBar menuBar = new JMenuBar();
setJMenuBar( menuBar );

menuBar.add( menu );
menu.add( menuItem );
menu.add( menuItem2 );

menuItem.addActionListener( this );
menuItem2.addActionListener( this );

setVisible( true );

}

public void actionPerformed( ActionEvent e ) {

if ( e.getSource() == menuItem ) {
addTela( new JInternalFrame( "Janela 1" ) );
}
if ( e.getSource() == menuItem2 ) {
addTela( new JInternalFrame( "Janela 2" ) );
}

}

private void addTela( JInternalFrame arg ) {

if ( !temTela( arg ) ) {

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

}

}

private boolean temTela( JInternalFrame arg ) {

JInternalFrame[] telas = desktop.getAllFrames();

for ( int i = 0; i < telas.length; i++ )
if ( telas[ i ].getTitle().equals( arg.getTitle() ) )
return true;

return false;

}
public static void main( String[] args ) {


new JInternalFrameExemple();
}

}

cara, ai tem um exeplinho…
agora vc só faiz o metodozinho la ( ActionListener ) de quando o cara clina nos menus abri outras tela…
vai abri normal os InternalFrames dentro da desktop ai…

A

simsim!! eu ja consegi… vlwwww

A

manu o programa q voce pois ai kuandu eu clico nos menus ele nun aparece nd!!!

Criado 11 de janeiro de 2007
Ultima resposta 11 de jan. de 2007
Respostas 8
Participantes 2