Pessoal, sou novato aqui no fórum e em java, e estou com uma dúvida sobre qual é a boa prática de programação quando vamos criar a gui.
por Ex.: crio todos os componentes em uma classe e depois instancio um novo objeto e a partir daí vou manipulando os componentes? ou crio os componentes(JButtons, JTextField, etc) na mesma classe onde estão os métodos?
Não ficou muito clara sua pergunta, seria interessante colocar algum código fonte para exemplificar a sua dúvida.
Depende muito da situação, no seu caso acredito que se os componentes estiverem onde estão os métodos (esta parte é que não ficou clara - o que seria estes métodos?) pode ficar mais fácil.
Uma idéia seria colocar em uma classe os componentes visuais, a definição dos listeners (botões) caso necessário e os métodos que executam outros métodos em um outro objeto de uma classe que descreve o que tem que ser feito. Isto seria a idéia basica de uma View e de um Controller do padrão MVC.
flws
leonardobhbr
Amigo ja oviu falar do VE um plugin do eclipse, considero que ele gera o melhor codigo para GUI segue um exemplo
packagebr.com.atlantica.spedsystem.view;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Frame;importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjava.awt.Insets;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JDialog;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.SwingConstants;publicclassSobreViewextendsJDialog{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJLabellblImagem=null;privateJLabellblTexto=null;privateJButtonbtnOk=null;publicSobreView(Frameowner){super(owner,true);initialize();}privateJLabelgetLblTexto(){if(lblTexto==null){lblTexto=newJLabel();lblTexto.setVerticalAlignment(SwingConstants.TOP);lblTexto.setPreferredSize(newDimension(397,56));lblTexto.setMaximumSize(newDimension(397,56));lblTexto.setMinimumSize(newDimension(397,56));lblTexto.setText("XXXXXXXXXXXXXXXXXXXXXXXXXX");}returnlblTexto;}privateJPanelgetJContentPane(){if(jContentPane==null){GridBagConstraintsgridBagConstraints9=newGridBagConstraints();gridBagConstraints9.insets=newInsets(6,210,21,19);gridBagConstraints9.gridy=2;gridBagConstraints9.gridx=0;GridBagConstraintsgridBagConstraints8=newGridBagConstraints();gridBagConstraints8.insets=newInsets(1,0,6,2);gridBagConstraints8.gridy=1;gridBagConstraints8.gridx=0;GridBagConstraintsgridBagConstraints7=newGridBagConstraints();gridBagConstraints7.insets=newInsets(0,0,0,2);gridBagConstraints7.gridy=0;gridBagConstraints7.gridx=0;lblImagem=newJLabel();lblImagem.setIcon(newImageIcon(getClass().getResource("splash.png")));lblImagem.setMinimumSize(newDimension(397,151));lblImagem.setMaximumSize(newDimension(397,151));lblImagem.setPreferredSize(newDimension(397,151));lblImagem.setText("");GridBagConstraintsgridBagConstraints=newGridBagConstraints();gridBagConstraints.insets=newInsets(32,26,0,79);gridBagConstraints.gridy=0;gridBagConstraints.gridx=0;jContentPane=newJPanel();jContentPane.setSize(465,267);jContentPane.setLayout(newGridBagLayout());jContentPane.setBackground(Color.WHITE);jContentPane.add(lblImagem,gridBagConstraints7);jContentPane.add(getLblTexto(),gridBagConstraints8);jContentPane.add(getBtnOk(),gridBagConstraints9);}returnjContentPane;}privatevoidinitialize(){this.setPreferredSize(newDimension(187,326));this.setBounds(newRectangle(0,0,405,303));this.setResizable(false);this.setTitle("Sobre o XXXXXXXXXXX");this.setContentPane(getJContentPane());this.setLocationRelativeTo(null);this.addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){dispose();}});}@Overridepublicvoiddispose(){sobreView=null;}/** * This method initializes btnOk * * @return javax.swing.JButton */privateJButtongetBtnOk(){if(btnOk==null){btnOk=newJButton();btnOk.setText("OK");btnOk.setPreferredSize(newDimension(170,30));btnOk.setMaximumSize(newDimension(170,30));btnOk.setMinimumSize(newDimension(170,30));btnOk.setMnemonic(KeyEvent.VK_O);btnOk.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){setVisible(false);dispose();}});}returnbtnOk;}}
FernandoFranzini
wilkersena:
Pessoal, sou novato aqui no fórum e em java, e estou com uma dúvida sobre qual é a boa prática de programação quando vamos criar a gui.
por Ex.: crio todos os componentes em uma classe e depois instancio um novo objeto e a partir daí vou manipulando os componentes? ou crio os componentes(JButtons, JTextField, etc) na mesma classe onde estão os métodos?
Vlw , espero que tenham entendido minha dúvida.
A boa pratica é usar POO!!! Ou seja, cada caso deve ser avaliado de acordo com a situação. Mas normalmente, o mais indicado e especializar uma GUI do seu projeto. Ou seja, vc cria uma classe filha de JFrame e encapsula nela seus comportamentos e características.