"rvaldomiro":
mas vejo que muitos de vocês constroem telas artezanalmente na mão; isso não é complicado?
de começo vc demora pra fazers as GUIs... mas com o tempo e pratica e utilizando bastante o auto-completar do eclipse( ctrl + space ) até que talvez eu demore poucos minutos a mais do que está usando uma ferramenta que auxilie para isso.
"rvaldomiro":
ficar tentando imaginar onde está o componente em relação aos demais sem nenhum auxílio visual :shock:
vc usa gerenciadores de layout:
java.awt.BorderLayout;
java.awt.GridBagLayout;
entre varios outros que vc pode ver na API do java e outras.
Geralmente divido minhas GUI complexas em paneis diferentes ex:
class PanelCidade extends JPanel {
// apenas um exemplo simplificado
protected JLabel labelCidade;
protected JTextField txtCidade;
private String cidade;
public PanelCidade( String cidade ){
super( new GridBagLayout() );
this.cidade = cidade;
initComponents();
}
private void initComponents(){
GridBagLayout layout = (GridBagLayout)getLayout();
GridBagConstraints gbConstraints = new GridBagConstraints();
gbConstraints.anchor = GridBagConstraints.LINE_START;
labelCidade = new JLabel( "Cidade: " );
gbConstraints.gridx = 0; gbConstraints.gridy = 1;
layout.setConstraints( labelCidade, gbConstraints );
add( labelCidade );
txtCidade = new JTextField( cidade );
txtCidade.setPreferredSize( new Dimension( 110, 17 ) );
txtCidade.setEditable( false );
txtCidade.setBackground( Color.WHITE );
gbConstraints.gridx = 1; gbConstraints.gridy = 1;
layout.setConstraints( txtCidade, gbConstraints );
add( txtCidade );
}
...
...
...
...
}
e depois junto todos os paneis no frame desejado
public class Janela extends JInternalFrame {
private PanelCidade panelCidade;
private PanelBotoes panelBotoes;
...
...
...
public Janela(){
super();
initComponents();
...
...
show();
}
private void initComponents(){
setSize(575, 290);
setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
...
...
Jpanel panel = new JPanel( new BorderLayout() );
panelCidade = new PanelCidade( cidade );
panel.add( panelCidade, BorderLayout.Center );
setContentPane(panel);
}
}
:arrow: Mas acho que o netbeans é uma otima ferramente tbm... vc pode usar ele utilizando AbsoluteLayout e nao sei se é AbstractLayout para colocar os components na posição desejadas tbm... ou utilizar metados como setBounds( 0 ,2 ,3, 4) para posicionar o componente em uma posição desejada... mas ae vc vai ter que ficar imaginando as coisas na cabeça...
fazendo artezanalmente vc faz o codigo do jeito que vc quer... eu prefiro assim... mas esse é a opnião de uma pessoa que nunca usou o netbeans pra fazer isso... talvez entre alguem ae q usa netbeans falando suas vantagens e como usar...