Olá pessoal, estou desenvolvendo um sistema que ele vai importar dados do banco de dados e com isso eu terei que criar uma interface visual semelhante a de programas de instalação no qual terá que aparecer várias janelas onde o usuário poderá avançar ou voltar…
a minha dúvida é qual a melhor forma de fazer isto em java, pensei em usar o padrão de layout CardLayout, também pensei em utilizar o JLayreadPane, alguém poderia me dar uma sugestão??? 
Susgestão de uso de componente visual[Resolvido]
V
4 Respostas
E
Use um CardLayout mesmo.
Os botões Next, Previous, Finish etc. ficam em um painel separado.
E
Exemplo:
package guj;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.SoftBevelBorder;
public class ExemploInstalador extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel pnlPrincipal = null;
private JPanel pnlBotoes = null;
private JButton btnProximo = null;
private JButton btnAnterior = null;
private JButton btnFinalizar = null;
private JButton btnCancelar = null;
private JPanel pnlTela1 = null;
private JPanel pnlTela2 = null;
private JLabel lblExemplo1 = null;
private JCheckBox chkExemplo2 = null;
private JPanel getPnlPrincipal() {
if (pnlPrincipal == null) {
pnlPrincipal = new JPanel();
pnlPrincipal.setLayout(new CardLayout());
pnlPrincipal.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED));
pnlPrincipal.add(getPnlTela1(), getPnlTela1().getName());
pnlPrincipal.add(getPnlTela2(), getPnlTela2().getName());
}
return pnlPrincipal;
}
private JPanel getPnlBotoes() {
if (pnlBotoes == null) {
FlowLayout flowLayout = new FlowLayout();
flowLayout.setAlignment(FlowLayout.RIGHT);
pnlBotoes = new JPanel();
pnlBotoes.setLayout(flowLayout);
pnlBotoes.add(getBtnAnterior(), null);
pnlBotoes.add(getBtnProximo(), null);
pnlBotoes.add(getBtnFinalizar(), null);
pnlBotoes.add(getBtnCancelar(), null);
}
return pnlBotoes;
}
private JButton getBtnProximo() {
if (btnProximo == null) {
btnProximo = new JButton();
btnProximo.setText("Próximo >");
btnProximo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// Exemplo do que pode ser feito (chavear para a tela 2)
((CardLayout)pnlPrincipal.getLayout()).show(pnlPrincipal, "tela2");
}
});
}
return btnProximo;
}
private JButton getBtnAnterior() {
if (btnAnterior == null) {
btnAnterior = new JButton();
btnAnterior.setText("< Anterior");
btnAnterior.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// Exemplo do que pode ser feito (chavear para a tela 1)
((CardLayout)pnlPrincipal.getLayout()).show(pnlPrincipal, "tela1");
}
});
}
return btnAnterior;
}
private JButton getBtnFinalizar() {
if (btnFinalizar == null) {
btnFinalizar = new JButton();
btnFinalizar.setText("Finalizar");
}
return btnFinalizar;
}
private JButton getBtnCancelar() {
if (btnCancelar == null) {
btnCancelar = new JButton();
btnCancelar.setText("Cancelar");
}
return btnCancelar;
}
private JPanel getPnlTela1() {
if (pnlTela1 == null) {
lblExemplo1 = new JLabel();
lblExemplo1.setText("Tela 1");
pnlTela1 = new JPanel();
pnlTela1.setLayout(new FlowLayout());
pnlTela1.setName("tela1");
pnlTela1.add(lblExemplo1, null);
}
return pnlTela1;
}
private JPanel getPnlTela2() {
if (pnlTela2 == null) {
pnlTela2 = new JPanel();
pnlTela2.setLayout(new FlowLayout());
pnlTela2.setName("tela2");
pnlTela2.add(getChkExemplo2(), null);
}
return pnlTela2;
}
private JCheckBox getChkExemplo2() {
if (chkExemplo2 == null) {
chkExemplo2 = new JCheckBox();
chkExemplo2.setText("Tela 2");
}
return chkExemplo2;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ExemploInstalador thisClass = new ExemploInstalador();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
public ExemploInstalador() {
super();
initialize();
}
private void initialize() {
this.setSize(453, 245);
this.setContentPane(getJContentPane());
this.setTitle("Exemplo Tosco de Instalador");
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getPnlPrincipal(), BorderLayout.CENTER);
jContentPane.add(getPnlBotoes(), BorderLayout.SOUTH);
}
return jContentPane;
}
} // @jve:decl-index=0:visual-constraint="10,19"

V
Obrigado entanglement ajudou muito
vou usar este msm…
S
Olá amigo
dê uma olhada em:
http://oswing.sourceforge.net/
baixe o penswing e na pasta: OpenSwing2.1.8/srcdemo/demo14
tem um exemplo.
Boa sorte
Silvio
Criado 30 de junho de 2010
Ultima resposta 1 de jul. de 2010
Respostas 4
Participantes 3
