Olá pessoal, boa noite a todos.
Peço a ajuda de vcs, se tem algum bom cite sobre a organização visual do projeto. Não sobre os layouts (já sei sobre eles, ou talvez não saiba o bastante). Bem toda dica é bem vinda.
O meu problema é o seguinte.
Como podem ver, os componentes estão muito espalhados.
Pois ao definir o layout como BorderLayout ele meio que estica os componentes em toda a tela.
Tem como eu evitar isso? Fazer com que ocupe somente o espaço necessário?
Usando o border layout é complicado, já que ele é bem simples mesmo e pra forms ele num é recomendado, tenta outro mais sofisticado como box layout ou mesmo grid layout.
Ziru
Mas os componentes estão no GridLayout, porem o border está esticando eles.
E
elissonandrade
Tente usar flow layout no lugar do border layout então. Se ainda não funcionar, poste o código.
E
entanglement
Use o MigLayout em vez de brigar com os layouts padrão do Java.
O WindowBuilder (plugin do Eclipse) tem suporte nativo ao MigLayout.
Ziru
É uma boa dica, mas me sinto menos desenvolvedor quando apelo pra IDE. (nada contra mesmo)
Tipo eu programo em PowerBuilder, lá 90% a IDE faz… Bem facio de organizar as coisas…
Ziru
Já está num flow, o gride está dentro de um painel com o flow, e este está no centro do border.
Ziru
Segue o codigo.
packagePaineis;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.SQLException;importjava.text.ParseException;importjavax.swing.BorderFactory;importjavax.swing.JComboBox;importjavax.swing.JFormattedTextField;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;importjavax.swing.text.MaskFormatter;importSQLPackage.SQLConection;@SuppressWarnings("serial")publicclasspainelCentralAcessoriosextendsJPanel{privateJLabeltipo;privateJLabellabelAto;privateJLabellabelMatricula;privateJLabellabelData;privateJLabellabelProtocolo;privateJTextFieldtextAto;privateJTextFieldtextMatri;privateJTextFieldtextProtoco;privateJComboBox<String>comboTipo;publicpainelCentralAcessorios()throwsSQLException,ParseException{setLayout(newFlowLayout());setBorder(BorderFactory.createTitledBorder(null,"<html><b>Dados Principais</b><html>"));JPanelpainel=newJPanel();painel.setLayout(newGridLayout(5,2));tipo=newJLabel("Tipo:");painel.add(tipo);comboTipo=newJComboBox<>();SQLConection.SQLRetornarDados(comboTipo);comboTipo.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEventarg0){Strings=(String)comboTipo.getSelectedItem();System.out.println(s);}});painel.add(comboTipo);labelAto=newJLabel("Nº do Ato:");painel.add(labelAto);textAto=newJTextField();painel.add(textAto);labelMatricula=newJLabel("Mátricula:");painel.add(labelMatricula);MaskFormattermaskMatricula=newMaskFormatter("******");maskMatricula.setValidCharacters("[telefone removido] ");textMatri=newJFormattedTextField(maskMatricula);painel.add(textMatri);labelData=newJLabel("Data:");painel.add(labelData);MaskFormattermaskData=newMaskFormatter("##/##/####");maskData.setPlaceholderCharacter('_');JTextFieldtextData=newJFormattedTextField(maskData);painel.add(textData);labelProtocolo=newJLabel("Protocolo:");painel.add(labelProtocolo);textProtoco=newJTextField();painel.add(textProtoco);add(painel);}}
Ziru
Alguém por favor?
Henrique_Lavezzo
Estude um pouco sobre GroupLayout, ele pode parecer complicado logo de cara, mas ele se encaixou perfeitamente no quesito organização pelo menos para mim.
Nota: Faço tudo no código, não utilizo ferramentas gráficas para um auxilio na organização.
Ziru
Valeu pela dica vou dar uma estudada.
E
entanglement
Isso se chama “síndrome de macho”. Será que alguém é mais ou menos macho quando usa uma IDE para ajudar a fazer as coisas chatas (como fazer layout de telas)?
Prefiro me concentrar em escrever algoritmos decentes para o processamento, em vez de ficar contando pixels na tela.
Ziru
Na verdade não, eu estou programando a pouco tempo. Então prefiro aprender mesmo.
Como disse não tenho nada contra, uso o Eclipise pra me ajudar a compilar e a lembrar nomes.
E como já disse também, é uma preferencia minha.
lalau
Ziru?? tudo bem!!
Olha meu caro colega do guj eu recomendo que use o miglayout, como já referido pelos colegas acima.
uma vez que a sua preferencia é fazer o codigo gui na mão sugiro que estude ele e tera bons resultados
eu tbm não gosto muito de usar IDE(não digo que iniciante não possa usar) agora que estou a estudar.
abs!!!
note: alternativa o GridBagLayout tbm é bom
Ziru
Certo, obrigado pela dica de todos. Certamente foram valiosas.