Nova Janela

9 respostas
I

Olá…

tem um prgraminha simples com uns 4 campos para o usuário colocar… e depois clicar em um botão… como faço para qdo o usuario clicar no botão… abra uma nova janela…

já fiz o ActionListener (naum lembro se é esse o nome mesmo)… mas naum sei como faço pra criar uma nova janela…

se alguém puder me explicar ou colar um trecho de algum código…

PS: naum gostaria de akeles Dialogs…

Muito Obrigado

9 Respostas

M

…vc pode fazer essa aplicação extendendo JDesktopPane… e usar JInternaFrame para ser essa janela q vc quer…, te posto algum código disso qnd achar na bagunça q esta meus diretorios!

:tosco:

I

blz… entaum… fico esperando a parte do código…

enqto isso to vendo se acho algo… por ai…

vlw!!!

M

ai tem um exemplo q tirei do Java Como Programar, bem parecido com oq tu quer, mas ao invez de usar um botao pra abrir a janela, ele esta usando um JMenu... ah, preste atenção na linha onde ele instancia um ImageIcon, salve qualquer imagem .gif no mesmo diretorio dessa classe.. com o nome "imagem.gif" por exemplo...

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


public class DesktopTest extends JFrame {

   private JDesktopPane theDesktop;

   public DesktopTest()
   {
      super( "Using a JDesktopPane" );

      JMenuBar bar = new JMenuBar();
      JMenu addMenu = new JMenu( "Add" );
      JMenuItem newFrame = new JMenuItem( "Internal Frame" );

      addMenu.add( newFrame );
      bar.add( addMenu );

      setJMenuBar( bar );

      theDesktop = new JDesktopPane();
      getContentPane().add( theDesktop );

      newFrame.addActionListener(

         new ActionListener() {

            public void actionPerformed( ActionEvent e )
            {
               JInternalFrame frame = new JInternalFrame(

                  "InternalFrame", true, true, true, true

               );

               Container box = frame.getContentPane(  );
               MyPanel panel = new MyPanel();
               box.add( panel, BorderLayout.CENTER );

               frame.pack();

               theDesktop.add( frame );
               frame.setVisible( true );
            }

         }

      );

      setSize( 600, 400 );
      show();
   }

   public static void main( String args[] )
   {
      DesktopTest win = new DesktopTest();

      win.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   class MyPanel extends JPanel {

      private ImageIcon imageIcon;

      public MyPanel()
      {
         imageIcon = new ImageIcon( "imagem.gif" );
      }

      public void paintComponent( Graphics g )
      {
         super.paintComponent( g );
         imageIcon.paintIcon( this, g, 0, 0 );
      }

      public Dimension getPreferredSize()
      {
         return new Dimension( imageIcon.getIconWidth(), imageIcon.getIconHeight() );
      }

   }

}
L

aproveitando a corda…

qdo clico no botao abre uma nova janela normalmente…mais qdo fecho a nova janela q abriu…fecha as duas… mais naum quero q feche as duas…como posso resolver esse problema…

tks

M

fecha as duas? como assim, uma janela filha nao pode fechar uma janela pai a não ser q tu tenha programado isso

L

tipo a ação desse botão é chamar outra classe…consulta.java q exibe uma tabela com os dados do Banco… mais qdo fecho essa janela… fecha as duas… tanto a tabela…como a outra… :???:
eu naum programei isso naum…

M

se ta fechando as duas provavelmente é pq tu ta chamando System.exit( 0 ) na janela da tabela… :roll:

B

“LuanaKelly”:
aproveitando a corda…

qdo clico no botao abre uma nova janela normalmente…mais qdo fecho a nova janela q abriu…fecha as duas… mais naum quero q feche as duas…como posso resolver esse problema…

tks

faz o seguinte … na janela que vc quer que feche sem finalizar a aplicação coloque no construtor setDefaultCloseOperation(DISPOSE_ON_CLOSE);

FUI…

L

consegui…obrigado… :wink:

Criado 17 de março de 2004
Ultima resposta 24 de ago. de 2004
Respostas 9
Participantes 4