Problema com Novo Form

13 respostas
colored

Bom to criando uma aplicacao. e preciso abrir um novo form, tipo com 1 clike no JmenuItem, como eu faço isso, e esse JInternalFrame ouvi mto fala tipo alguem q conhece mais afundo ele poderia me da um tok pra eu começar a usar ele, pq pelo q eu vi ele é mto melhor q criar uma nova janela pq ele fica acoplado com um frame principal…

Valeu =d

13 Respostas

thegoergen

Você pode adicionar ActionPerformed no JMenuItem, e no action tu chama o novo form.

O JInternalFrame eu não conhço muito não, nós usamos aqui na empresa, mas é uma classe reimplementada…

colored

isso eu sei, tipo pq ah alguns meses eu tinha esse problema eu fazia

Obj obj = new Obj();
obj.setvisible(true);

no evento do menuitem o form aparecia mas as funções dele n

colored

me tokei uma coisa, ele n tem nenhum função pq em uma classe esta o form e em outra essa q esta os metodos é a main, como eu fasso pra q os dois funcionem sendo q estao em classes diferentes.

B

cara…poste seu código aqui que fica melhor de explicar a você…
mas se foi isso que eu entendi você deve instanciar a classe que contem os métodos, assim vc consegue pegar todos os métodos na outra classe.

mais ou menos assim…

package exercicio;


    public class Main {   
   
    
    public  Main(){   
    }   
    
    public void TesteMétodo(){   
        System.out.println("Método"); 
    }
    
    }

aí vc instancia esse método na outra classe

package exercicio;


public class ChamarMétodo {
    
    /** Creates a new instance of ChamarMétodo */
    public ChamarMétodo() {
    }
    
  public static void main(String args[]){   
       Main m = new Main();
       m.TesteMétodo();
        }   
    }
B

cara, em relação ao JMenuItem tem um jeito bem simples de fazer…

Se você estiver usando o NetBeans, clique uma vez no JMenuItem, vá em propriedades, Eventos…

Em ActionPerformed clique nos … e em Adicionar…

Escolha um nome e dentro desse método você coloca assim

NomeForm.setVisible(true);

simples não…

Em relação ao JInternalFrame, na minha opinião ele é bem xatinho pra mexer, eu pessoalmente uso o JDialog…
mas se vc quiser o JInternalFrame voce tem que criar um JDesktopPane e dentro desse JDesktopPane você adiciona o JInternalFrame…rsrs…meio complicado né…
se você for realmente usar esse JInternalFrame me avise que eu passo um código pronto onde eu uso ele blza?!! espero ter ajudado

M

Salve,

Mais ou menos assim(um dos jeitos):

Primeiro criando o menu:

menubar = new JMenuBar();
		
		JMenu cadastro = new JMenu("Cadastro");
		JMenuItem clientes = new JMenuItem("Clientes");
		cadastro.add(clientes);
		menubar.add(cadastro);

Criando a ação do menu:

clientes.addActionListener(new MyAction());

Criando um InternalFrame:

JInternalFrame janelaInt = new JInternalFrame("Cadastro de Clientes", false, false, false, false);
		janelaInt.getContentPane().setLayout (null);  
	   
			   getContentPane().add(janelaInt);

Frame…

setJMenuBar(menubar);
		setSize(800,800);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);

E finalmente o método que irá fazer o evento.

public class MyAction implements ActionListener {
		
	  public void actionPerformed(ActionEvent ae) {

			if(ae.getSource() == clientes) {
				janelaInt.setVisible(true);
			}
				     
		}

	}

Abçs!

colored

Esse JDialog é melhor q o Jinternal?

Tipo os eventos eu n tenho problema so n sei como q eu vo cria o Jinternal e seta ele no frame,
e pra adicionar os componentes no internal usa um add() = um panel?

B

cara blza??
então eu fiz mais ou menos dá sim…
e dá certo…

package usandojinternal;

public class NovoJInternalFrame extends javax.swing.JInternalFrame {
    
    public NovoJInternalFrame() {
        initComponents();
    }
  
    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 394, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 274, Short.MAX_VALUE)
        );
        pack();
    }// </editor-fold>                        
    
    
    // Declaração de variáveis - não modifique                     
    // Fim da declaração de variáveis                   
    
}

Essa classe aí em cima é o JInternalFrame, você pode criar ele clicando em cima da package, Novo, Formulario JInternalFrame.

depois você cria sua classe principal onde vai ter o menu e o JDesktopPane

package usandojinternal;

public class NovoJFrame extends javax.swing.JFrame {
    

    public NovoJFrame() {
        initComponents();
        
        jInternalFrame1.setVisible(false); // Você seta o JInternalFrame como false para ele não aparecer na tela
        
        jDesktopPane1.add(e); // Adicione o JInternalFrame ao JDesktopFrame

// Lembrando que seu JInternalFrame vai ficar do tamanho do seu JDesktopPane ou menor, então na hora de colocar o JDesktopPane já coloque o tamanho dele.
    }
    
NovoJInternalFrame e = new NovoJInternalFrame();  //Aqui você está instanciando a classe com o JInternalFrame

    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        jInternalFrame1 = new javax.swing.JInternalFrame();
        jDesktopPane1 = new javax.swing.JDesktopPane();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jInternalFrame1.setVisible(true);
        javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
        jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
        jInternalFrame1Layout.setHorizontalGroup(
            jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 986, Short.MAX_VALUE)
        );
        jInternalFrame1Layout.setVerticalGroup(
            jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 434, Short.MAX_VALUE)
        );

        jMenu1.setText("Menu");
        jMenuItem1.setText("Item");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AbrirTela(evt);
            }
        });

        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jDesktopPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(15, 15, 15)
                .addComponent(jInternalFrame1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(226, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(64, 64, 64)
                        .addComponent(jDesktopPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jInternalFrame1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(22, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        

// Evento no JMenuItem
    private void AbrirTela(java.awt.event.ActionEvent evt) {                           
        e.setVisible(true);  //A hora que clicar no JMenuItem setar o JInternalFrame para aparecer
    }

Deu pra entender mais ou menos??

colored

kk.;… sei la se, deu netbeans gera mto codigo =x…
mas eu vo da uma olhada…

B

mas esses código aí é tudo código pronto que o netbeans gera…

vc vai ter que digitar umas 5 linhas de código só…

colored

Tipo mto codigo eu vo me embola…

n da pra vc passa um exemplo com um form q cria um internal frame, pq o resto eu me viro…

colored

Preciso de um codigo simples do netbeans, assim pq eu tenho q ver como eu faço o simples no eclipse…
para eu aprender…

colored

Tipo com os topicos e as ajudas eu montei um assim…

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


public class FormCliente extends JFrame{
	
	public FormCliente() {
		JDesktopPane desk;
		JInternalFrame iframe;
		
		 JFrame frame = new JFrame();
			setTitle("=]");
			setLocation(50,100);
			setSize(670,600);
			setLocationRelativeTo(null);
			setResizable(false);
			setUndecorated(true); 
			getRootPane().setWindowDecorationStyle(JRootPane.FRAME); 

		
		 getContentPane().setLayout(null);   
			
		 desk = new JDesktopPane(); 
	      desk.setBounds(0, 0, 600, 500);
	      getContentPane().add(desk);  
	      
	     iframe = new JInternalFrame();
	     iframe.setVisible(true); 
	     iframe.setBounds(0,0,100,200);
	     getContentPane().add(iframe);
	     
	     setContentPane(iframe);

	}
	
	public static void main(String[] args) {
		FormCliente f = new FormCliente();
		f.setVisible(true);
	}
	
}

mas pelo q eu vi eu preciso fazer o JInternal frame numa classe separada, tanto q eu vo ter mais de 1 JIframe,
mas e pra joga os componentes como eu faço?, pra joga no Jiframe

Criado 25 de março de 2008
Ultima resposta 26 de mar. de 2008
Respostas 13
Participantes 4