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:
Ai está a parte do codigo para manipular essa janela:
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);
Conteudo1 é a classe das Informações e Conteudo2 é a classe das Observações. E o PanelImagem trata da imagem. ;)
M
mfjeng
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.
JamesBond
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 ?
ViniGodoy
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.
thundercas
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
M
mfjeng
Olá, veja se isso te ajuda um pouco:
importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.FlowLayout;importjavax.swing.BorderFactory;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JPanel;importjavax.swing.border.TitledBorder;publicclassTelaJamesBond{publicstaticvoidmain(String[]args){JFrametelaPrincipal=newJFrame("Teste Tela");telaPrincipal.setLocationRelativeTo(null);// centro da tela// Paineis que contem outros paineisJPanelpainelCentral=newJPanel(newBorderLayout());// painel central -> container de todos os outros paineisJPanelpainelInferior=newJPanel(newFlowLayout());// painel central -> container dos dois paineis inferiores// Barra de menusJMenuBarmb=newJMenuBar();JMenumenuFile=newJMenu("File");JMenumenuHelp=newJMenu("Help");mb.add(menuFile);mb.add(menuHelp);painelCentral.add(mb,BorderLayout.NORTH);// adicionando a barra de menus // Painel Imagem TitledBordertituloImagem;// titulo do painel tituloImagem=BorderFactory.createTitledBorder("Imagem");// cria borda com tituloJPanelpainelImagem=newJPanel();painelImagem.setPreferredSize(newDimension(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 TitledBordertituloInf;tituloInf=BorderFactory.createTitledBorder("Informações");JPanelpainelInformacoes=newJPanel();painelInformacoes.setPreferredSize(newDimension(300,200));painelInformacoes.setBorder(tituloInf);painelInferior.add(painelInformacoes);// Painel Observações TitledBordertituloObs;tituloObs=BorderFactory.createTitledBorder("Observações");JPanelpainelObservacoes=newJPanel();painelObservacoes.setPreferredSize(newDimension(300,200));painelObservacoes.setBorder(tituloObs);painelInferior.add(painelObservacoes);telaPrincipal.add(painelCentral);telaPrincipal.setVisible(true);}}
JamesBond
mfjeng:
Olá, veja se isso te ajuda um pouco:
importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.FlowLayout;importjavax.swing.BorderFactory;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JPanel;importjavax.swing.border.TitledBorder;publicclassTelaJamesBond{publicstaticvoidmain(String[]args){JFrametelaPrincipal=newJFrame("Teste Tela");telaPrincipal.setLocationRelativeTo(null);// centro da tela// Paineis que contem outros paineisJPanelpainelCentral=newJPanel(newBorderLayout());// painel central -> container de todos os outros paineisJPanelpainelInferior=newJPanel(newFlowLayout());// painel central -> container dos dois paineis inferiores// Barra de menusJMenuBarmb=newJMenuBar();JMenumenuFile=newJMenu("File");JMenumenuHelp=newJMenu("Help");mb.add(menuFile);mb.add(menuHelp);painelCentral.add(mb,BorderLayout.NORTH);// adicionando a barra de menus // Painel Imagem TitledBordertituloImagem;// titulo do painel tituloImagem=BorderFactory.createTitledBorder("Imagem");// cria borda com tituloJPanelpainelImagem=newJPanel();painelImagem.setPreferredSize(newDimension(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 TitledBordertituloInf;tituloInf=BorderFactory.createTitledBorder("Informações");JPanelpainelInformacoes=newJPanel();painelInformacoes.setPreferredSize(newDimension(300,200));painelInformacoes.setBorder(tituloInf);painelInferior.add(painelInformacoes);// Painel Observações TitledBordertituloObs;tituloObs=BorderFactory.createTitledBorder("Observações");JPanelpainelObservacoes=newJPanel();painelObservacoes.setPreferredSize(newDimension(300,200));painelObservacoes.setBorder(tituloObs);painelInferior.add(painelObservacoes);telaPrincipal.add(painelCentral);telaPrincipal.setVisible(true);}}