Problemas

Olá pessoal,

Sou novo aqui no fórum, e estou gostando daqui, pois me ajuda muito em java, principalmente na parte de manipulação de janelas. Então, vamos ao que interessa: estou tentando fazer um aplicativo que abra uma imagem. Então, fiz um escopo de como vai ser a janela, so pra vcs terem uma noção:

[URL=http://img222.imageshack.us/my.php?image=janelang2.jpg][/URL]

Mas, infelizmente não consigo fazer exatamente o que eu quero. Olha como fica minha janela:

[URL=http://img222.imageshack.us/my.php?image=janela1wa0.jpg][/URL]

Alguém tem alguma idéia ?
Se quiserem, posto o código aqui.

Desde já, vlw :smiley:

Ai está a parte do codigo para manipular essa janela:

[code] Box box1 = Box.createVerticalBox();

	 box1.add(new JLabel("  "));
	 
	 String imagem = "";

	 pi = new PanelImagem(imagem);
	 box1.add(pi.getLayout(),BorderLayout.NORTH);

	 Box box2 = Box.createHorizontalBox();
	 
	 box2.add(new JLabel("  "));

	 Conteudo1 c = new Conteudo1();
	 box2.add(c.getLayout(),BorderLayout.SOUTH);
	 		 
	 box2.add(new JLabel("  "));

	 Conteudo2 c2 = new Conteudo2();
	 box2.add(c2.getLayout(),BorderLayout.SOUTH);

	 this.add(box1);
	 this.add(box2);[/code]

Conteudo1 é a classe das Informações e Conteudo2 é a classe das Observações. E o PanelImagem trata da imagem. :wink:

Pra facilitar o desenho das telas em swing o netbeans é show, mesmo pra quem não está acostumado com ele. Tente utilizá-lo para fazer esse layout.

ENtão cara, já tentei, mas ele mostra código muito complexo, que não consigo interpretar direito … não tem alguma forma mais fácil para fazer isso não ?

Tem. Pare de tentar interpretar o código que ele gera.
Afinal, ele até te proíbe de edita-lo.

O Visual Editor, do Eclipse, é menos poderoso mas gera um código consideravelmente mais simples. Você pode tentar usa-lo também.

Cara, se você quer chegar lá pelo caminho mais fácil (depende do tempo que você tem disponível), utilize NetBeans ou Visual Editor no Eclipse… Se quiser treinar java para montar sua tela na unha, utilize GridBagLayout… Abraços

Olá, veja se isso te ajuda um pouco:


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

public class TelaJamesBond {
	public static void main(String[] args) {

		JFrame telaPrincipal = new JFrame("Teste Tela");
		telaPrincipal.setLocationRelativeTo(null);   // centro da tela
		
		// Paineis que contem outros paineis
		JPanel painelCentral = new JPanel(new BorderLayout());    // painel central -> container de todos os outros paineis
		JPanel painelInferior = new JPanel(new FlowLayout());     // painel central -> container dos dois paineis inferiores

		// Barra de menus
		JMenuBar mb = new JMenuBar();
		JMenu menuFile = new JMenu("File");
		JMenu menuHelp = new JMenu("Help");
		mb.add(menuFile);
		mb.add(menuHelp);
		
		painelCentral.add(mb,BorderLayout.NORTH);   // adicionando a barra de menus 
		
		// Painel Imagem		
		TitledBorder tituloImagem;   // titulo do painel       
		tituloImagem = BorderFactory.createTitledBorder("Imagem"); // cria borda com titulo

		JPanel painelImagem = new JPanel();
		painelImagem.setPreferredSize(new Dimension(200, 200));
		painelImagem.setBorder(tituloImagem);
		
		painelCentral.add(painelImagem,BorderLayout.CENTER);
		
		// Painel Inferior - Que ira conter os outros dois (para facilitar momentaneamente, pesquise outra forma de fazer...)
		painelCentral.add(painelInferior,BorderLayout.SOUTH);
		
		// Painel Informacoes		
		TitledBorder tituloInf;       
		tituloInf = BorderFactory.createTitledBorder("Informações");
		
		JPanel painelInformacoes = new JPanel();
		painelInformacoes.setPreferredSize(new Dimension(300, 200));
		painelInformacoes.setBorder(tituloInf);
		
		painelInferior.add(painelInformacoes);
		
		// Painel Observações		
		TitledBorder tituloObs;       
		tituloObs = BorderFactory.createTitledBorder("Observações");

		JPanel painelObservacoes = new JPanel();
		painelObservacoes.setPreferredSize(new Dimension(300, 200));
		painelObservacoes.setBorder(tituloObs);		

		painelInferior.add(painelObservacoes);
						
		telaPrincipal.add(painelCentral);		
		telaPrincipal.setVisible(true);		
	}
}

[quote=mfjeng]Olá, veja se isso te ajuda um pouco:

[code]

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

public class TelaJamesBond {
public static void main(String[] args) {

	JFrame telaPrincipal = new JFrame("Teste Tela");
	telaPrincipal.setLocationRelativeTo(null);   // centro da tela
	
	// Paineis que contem outros paineis
	JPanel painelCentral = new JPanel(new BorderLayout());    // painel central -> container de todos os outros paineis
	JPanel painelInferior = new JPanel(new FlowLayout());     // painel central -> container dos dois paineis inferiores

	// Barra de menus
	JMenuBar mb = new JMenuBar();
	JMenu menuFile = new JMenu("File");
	JMenu menuHelp = new JMenu("Help");
	mb.add(menuFile);
	mb.add(menuHelp);
	
	painelCentral.add(mb,BorderLayout.NORTH);   // adicionando a barra de menus 
	
	// Painel Imagem		
	TitledBorder tituloImagem;   // titulo do painel       
	tituloImagem = BorderFactory.createTitledBorder("Imagem"); // cria borda com titulo

	JPanel painelImagem = new JPanel();
	painelImagem.setPreferredSize(new Dimension(200, 200));
	painelImagem.setBorder(tituloImagem);
	
	painelCentral.add(painelImagem,BorderLayout.CENTER);
	
	// Painel Inferior - Que ira conter os outros dois (para facilitar momentaneamente, pesquise outra forma de fazer...)
	painelCentral.add(painelInferior,BorderLayout.SOUTH);
	
	// Painel Informacoes		
	TitledBorder tituloInf;       
	tituloInf = BorderFactory.createTitledBorder("Informações");
	
	JPanel painelInformacoes = new JPanel();
	painelInformacoes.setPreferredSize(new Dimension(300, 200));
	painelInformacoes.setBorder(tituloInf);
	
	painelInferior.add(painelInformacoes);
	
	// Painel Observações		
	TitledBorder tituloObs;       
	tituloObs = BorderFactory.createTitledBorder("Observações");

	JPanel painelObservacoes = new JPanel();
	painelObservacoes.setPreferredSize(new Dimension(300, 200));
	painelObservacoes.setBorder(tituloObs);		

	painelInferior.add(painelObservacoes);
					
	telaPrincipal.add(painelCentral);		
	telaPrincipal.setVisible(true);		
}

}

[/code][/quote]

cara, me ajudou mto … vlw mesmo