JPanel

8 respostas
E
package br.eti.excon.Siscom.Forms; 

import br.eti.excon.Forms.*; 
import br.eti.excon.Siscom.Forms.*; 
public class Siscom extends javax.swing.JFrame { 
    
    public Siscom() { 
        initComponents(); 
    } 
    
    private void initComponents() { 
        frmConteudo = new javax.swing.JPanel(); 
        frmConteudo.setBackground(new java.awt.Color(0, 51, 51)); 
        frmConteudo.setForeground(new java.awt.Color(51, 0, 51)); 
        getContentPane().add(frmConteudo, java.awt.BorderLayout.CENTER); 
    } 
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
        new CadCli().setVisible(true); 
        frmConteudo.add(CadCli,BorderLayout.CENTER); 
    } 
    
    public static void main(String args[]) { 
        java.awt.EventQueue.invokeLater(new Runnable() { 
            public void run() { 
                new Siscom().setVisible(true); 
            } 
        }); 
    } 
    private javax.swing.JPanel frmConteudo; 
    private javax.swing.JButton jButton1; 
    
}

Está dando o seguinte erro:

Compiling 1 source file to D:\JavaProject\Siscom\build\classes

D:\JavaProject\Siscom\src\br\eti\excon\Siscom\Forms\Siscom.java:89: cannot find symbol

symbol : variable CadCli

location: class br.eti.excon.Siscom.Forms.Siscom

frmConteudo.add(CadCli,BorderLayout.CENTER);

D:\JavaProject\Siscom\src\br\eti\excon\Siscom\Forms\Siscom.java:89: cannot find symbol

symbol : variable BorderLayout

location: class br.eti.excon.Siscom.Forms.Siscom

frmConteudo.add(CadCli,BorderLayout.CENTER);

O form CadCli está no pacote br.eti.excon.Forms

Valeu.

8 Respostas

p5f8

cara vou dar um chutão porquê não posso testar no computador em que estou trabalhando no momento…
mas creio que o erro seja por causa disso aqui…

new CadCli().setVisible(true); frmConteudo.add(CadCli,BorderLayout.CENTER);

faz assim…

CadCli frmCadCli = new CadCli(); frmCadCli.setVisible(true); frmConteudo.add(frmCadCli,java.awt.BorderLayout.CENTER);

se falei besteira gostaria que algum dos amigos do fórum me puxem a orelha… :oops:

E

Olá;

Funcionou mas veja o que está acontecendo quando clico no botão para chamar o form CadCli. Além disso o form não está sendo mostrado dentro do JPanel frmConteudo.

Exception in thread AWT-EventQueue-0 java.lang.IllegalArgumentException: adding a window to a container

at java.awt.Container.addImpl(Container.java:1010)

at java.awt.Container.add(Container.java:899)

at br.eti.excon.Siscom.Forms.Siscom.jButton1ActionPerformed(Siscom.java:90)

at br.eti.excon.Siscom.Forms.Siscom.access$000(Siscom.java:16)

at br.eti.excon.Siscom.Forms.Siscom$1.actionPerformed(Siscom.java:58)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)

at java.awt.Component.processMouseEvent(Component.java:5488)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)

at java.awt.Component.processEvent(Component.java:5253)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3955)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1766)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Valeu.

p5f8

ahhhh…
você quer chamar a janela frmCadCli dentro de um Panel?
cara… ai você já tá exigindo demais de mim… heheheheh
não tenho certeza, mas acredido que a jvm não está gostando disso não…

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
tenta fazer assim…
ao invés de colocar o frmCadCli dentro de um jpanel…
qual seria o problema de abrir/executar o frmCadCli em uma uma nova janela? tenta fazer isso…

CadCli frmCadCli = new CadCli(); frmCadCli.setVisible(true);

E

Olá;

Sim desta forma funciona mas eu queria fazer um tipo MDI entendeu.

Valeu.

p5f8

excon...
dá uma olhada no código abaixo.. . acho que é isso que você quer fazer...
desculpe a demora é que eu no trabalho eu não tenho acesso ao java... trabalho com outra linguagem...
espero ter ajudado...

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

/**
 * 
 */

/**
 * @author Teste
 *
 */
public class CriandoJanelasMDI implements ActionListener {

	private JFrame frame = null;
	private JDesktopPane desktop = null;
	
	public CriandoJanelasMDI() {
		// TODO Auto-generated constructor stub
		
		// Create an internal frame
	    boolean resizable = true;
	    boolean closeable = true;
	    boolean maximizable  = true;
	    boolean iconifiable = true;
	    String title = "Frame Title";
	    JInternalFrame iframe = new JInternalFrame(title, resizable, closeable, maximizable, iconifiable);
	    
	    // Set an initial size
	    int width = 200;
	    int height = 50;
	    iframe.setSize(width, height);
	    
	    // By default, internal frames are not visible; make it visible
		// Add components to internal frame...
	    iframe.setVisible(true);
	    iframe.getContentPane().add(new JTextArea());
	    
	    // Add internal frame to desktop
	    desktop = new JDesktopPane();
	    desktop.add(iframe);
	    
	    // Display the desktop in a top-level frame
	    frame = new JFrame();
		JPanel panel = new JPanel();
		JButton botao = new JButton("Criar");
		botao.addActionListener(this);
		
		panel.add(botao);

		frame.getContentPane().add(panel,BorderLayout.NORTH);
	    frame.getContentPane().add(desktop, BorderLayout.CENTER);
	    frame.setSize(300, 300);
	    frame.setVisible(true);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		new CriandoJanelasMDI();

	}
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub

		// Create an internal frame
	    boolean resizable = true;
	    boolean closeable = true;
	    boolean maximizable  = true;
	    boolean iconifiable = true;
	    String title = "Frame Title";
	    JInternalFrame iframe = new JInternalFrame(title, resizable, closeable, maximizable, iconifiable);
	    
	    // Set an initial size
	    int width = 200;
	    int height = 50;
	    iframe.setSize(width, height);
	    
	    // By default, internal frames are not visible; make it visible
		// Add components to internal frame...
	    iframe.setVisible(true);
	    iframe.getContentPane().add(new JTextArea());
		
		desktop.add(iframe);
	}

}
E

Olá;

Caro colega;

Olhei seu código e observei que está usando InternalFrame e é o que eu gostaria de evitar. Explico por que: A questão é o form CadCli bem como CadFor entre outros, são forms que participaram de diversas aplicações então o objetivo, é cria-los separado da aplicação em um pacote para que eu possa usa-los sempre que precisar. Teria como fazer com internalframe ?

Obrigado pela sua contribuição e não a nada a desculpar.

Valeu.

E

Olá;

Meu caro;

Analisando o seu código, resolví o problema a solução foi ao invés de criar um for extends JFrame, eu criei um form extends JInternalFrame e funcionou beleza da forma que eu imaginava.

Muito obrigado pelo seu esforço em me ajudar.

Valeu.

p5f8

legal cara, que você solucionou de uma maneira diferente.
eu nunca ia imaginar a solução que você deu, muito bem pensando.

Criado 14 de março de 2005
Ultima resposta 15 de mar. de 2005
Respostas 8
Participantes 2