Estou começando a desenvolver em Java e tentando montar uma tela pra usar em meus cadastros (J2SE)… com certa dificuldade cheguei ao código abaixo (ainda incompleto), mas não achei uma forma satisfatória pra colocar os componentes de Edição…
alguém tem alguma sugestão de como eu poderia dispor esses componentes no pgDados? pois quando redimensiona o frame fica tudo estranho.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
class CadPadrao extends JFrame implements ActionListener{
GridBagConstraints restricoes = new GridBagConstraints();
//Table
JTable gridConsulta;
String[] colunas;
String[][] dados;
//Abas
JTabbedPane tpGrupo;
JPanel pgConsulta;
JPanel pgFiltro;
JPanel pgDados;
JPanel pgRelatorio;
//Paineis
private JPanel pnlContemMenu;
private JPanel pnlMenu;
private JPanel pnlTitulo;
private JPanel pnlDados;
private JPanel pnlGrupo;
private JPanel pnlStatus;
private JLabel lbTitulo;
//Botoes
private JButton btNov;
private JButton btAlt;
private JButton btExc;
private JButton btCons;
private JButton btRel;
private JButton btFil;
private JButton btCon;
private JButton btCan;
private JButton btVol;
private JButton btTel;
private JButton btImp;
private JButton btSai;
//Componentes de Edicao
private JTextField tfNome;
private JTextField tfEndereco;
public CadPadrao(){
setTitle("Cadastro Padrão");
setSize(600,300);
ImageIcon icon = new ImageIcon(getClass().getResource(".\\imagens\\run.ico"));
setIconImage(icon.getImage());
//setResizable(false);
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container p = getContentPane();
btNov = new JButton("Novo",new ImageIcon("imagens\\novo.png"));
btNov.addActionListener(this);
btNov.setFocusable(false);
btNov.setToolTipText("Novo (Ins)");
btAlt = new JButton("Alterar",new ImageIcon("imagens\\alterar.png"));
btAlt.addActionListener(this);
btAlt.setFocusable(false);
btAlt.setToolTipText("Alterar (F2)");
btExc = new JButton("Inativar",new ImageIcon("imagens\\inativar.png"));
btExc.addActionListener(this);
btExc.setFocusable(false);
btExc.setToolTipText("Inativar (Del)");
btCons = new JButton("Consulta",new ImageIcon("imagens\\consulta.png"));
btCons.addActionListener(this);
btCons.setFocusable(false);
btCons.setToolTipText("Consulta Individual (F5)");
btRel = new JButton("Relatório",new ImageIcon("imagens\\relatorio.png"));
btRel.addActionListener(this);
btRel.setFocusable(false);
btRel.setToolTipText("Relatório (F12)");
btSai = new JButton("Fechar",new ImageIcon("imagens\\fechar.png"));
btSai.addActionListener(this);
btSai.setFocusable(false);
btSai.setToolTipText("Fechar (Esc)");
btFil = new JButton("Filtrar",new ImageIcon("imagens\\filtrar.png"));
btFil.addActionListener(this);
btFil.setFocusable(false);
btFil.setToolTipText("Filtrar (F6)");
btTel = new JButton("Tela",new ImageIcon("imagens\\tela.png"));
btTel.addActionListener(this);
btTel.setFocusable(false);
btTel.setToolTipText("Tela (F11)");
btImp = new JButton("Impressora",new ImageIcon("imagens\\impressora.png"));
btImp.addActionListener(this);
btImp.setFocusable(false);
btImp.setToolTipText("Impressora (F12)");
btVol = new JButton("Voltar",new ImageIcon("imagens\\voltar.png"));
btVol.addActionListener(this);
btVol.setFocusable(false);
btVol.setToolTipText("Voltar (Esc)");
btCon = new JButton("Confirmar",new ImageIcon("imagens\\confirmar.png"));
btCon.addActionListener(this);
btCon.setFocusable(false);
btCon.setToolTipText("Confirmar (F11)");
btCan = new JButton("Cancelar ",new ImageIcon("imagens\\cancelar.png"));
btCan.addActionListener(this);
btCan.setFocusable(false);
btCan.setToolTipText("Cancelar (Esc)");
pnlMenu = new JPanel();
pnlMenu.setLayout(new GridBagLayout());
restricoes.fill = GridBagConstraints.BOTH;
restricoes.ipady = 6;//altura minima do botao
//restricoes.ipadx = 200;//largura minima do botao
addGridBag(btNov, 0, 0);
addGridBag(btAlt, 0, 1);
addGridBag(btExc, 0, 2);
addGridBag(btCons, 0, 3);
addGridBag(btFil, 0, 4);
addGridBag(btRel, 0, 6);
addGridBag(btSai, 0, 7);
addGridBag(btCon, 0, 8);
addGridBag(btCan, 0, 9);
addGridBag(btVol, 0, 10);
addGridBag(btTel, 0, 11);
addGridBag(btImp, 0, 12);
pnlContemMenu = new JPanel();
pnlContemMenu.setBorder(BorderFactory.createEtchedBorder());
pnlContemMenu.add(pnlMenu,BorderLayout.NORTH);
p.add(pnlContemMenu,BorderLayout.WEST);
tpGrupo = new JTabbedPane(JTabbedPane.BOTTOM);
pgConsulta = new JPanel();
pgConsulta.setBorder(BorderFactory.createEtchedBorder());
pgConsulta.setLayout(new GridLayout(1, 0));
colunas = new String[]{"Código","Nome","Endereço"};
dados = new String[][]{
{"","",""}
};
DefaultTableModel modelo = new DefaultTableModel(dados, colunas);
gridConsulta = new JTable(modelo);
gridConsulta.getColumnModel().getColumn(1).setPreferredWidth(250);
gridConsulta.getColumnModel().getColumn(2).setPreferredWidth(300);
gridConsulta.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane pnlTemp = new JScrollPane();
pnlTemp.setViewportView(gridConsulta);
pgConsulta.add(pnlTemp);
pgFiltro = new JPanel();
pgFiltro.add(new JLabel("Pagina de Filtro"));
pgDados = new JPanel();
//pgDados.setLayout(new GridLayout(1, 0));
pgDados.setLayout(new FlowLayout(FlowLayout.LEFT));
//JScrollPane pgDados1 = new JScrollPane();
//JPanel pgDados2 = new JPanel();
pgDados.add(new JLabel("Nome"));
tfNome = new JTextField(40);
pgDados.add(tfNome);
pgDados.add(new JLabel("Endereço"));
tfEndereco = new JTextField(50);
pgDados.add(tfEndereco);
pgDados.add(new JLabel("Telefone"));
JTextField tfFone = new JTextField(18);
pgDados.add(tfFone);
//pgDados1.setViewportView(pgDados2);
//pgDados.add(pgDados2);
pgRelatorio = new JPanel();
pgRelatorio.add(new JLabel("Pagina de Relatorio"));
tpGrupo.addTab("Consulta",pgConsulta);
tpGrupo.setFocusable(false);
pnlGrupo = new JPanel();
pnlGrupo.setBorder(BorderFactory.createEtchedBorder());
pnlGrupo.setLayout(new BorderLayout());
p.add(pnlGrupo,BorderLayout.CENTER);
pnlTitulo = new JPanel();
pnlTitulo.setBorder(BorderFactory.createEtchedBorder(BevelBorder.RAISED));
lbTitulo = new JLabel("Consultando Dados");
pnlTitulo.add(lbTitulo);
pnlGrupo.add(pnlTitulo,BorderLayout.NORTH);
pnlStatus = new JPanel();
pnlStatus.setBorder(BorderFactory.createEtchedBorder(BevelBorder.RAISED));
pnlStatus.add(new JLabel("Barra de Status"));
p.add(pnlStatus,BorderLayout.SOUTH);
pnlDados = new JPanel();
pnlDados.setLayout(new BorderLayout());
pnlDados.setBorder(BorderFactory.createEtchedBorder());
pnlDados.add(tpGrupo,BorderLayout.CENTER);
pnlGrupo.add(pnlDados,BorderLayout.CENTER);
//inicializa a tela
montaTela("N");
}
void addGridBag(Component objeto, int x, int y){
restricoes.gridx = x;
restricoes.gridy = y;
pnlMenu.add(objeto, restricoes);
}
void montaTela(String acao){
if ((acao.equals("I"))||(acao.equals("A"))||(acao.equals("X"))||(acao.equals("R")||(acao.equals("F")))){
btNov.setVisible(false);
btAlt.setVisible(false);
btExc.setVisible(false);
btCons.setVisible(false);
btFil.setVisible(false);
btRel.setVisible(false);
btSai.setVisible(false);
btVol.setVisible(false);
btTel.setVisible(false);
btImp.setVisible(false);
if (acao.equals("I"))
lbTitulo.setText("Inclusão");
if (acao.equals("A"))
lbTitulo.setText("Alteração");
if ((acao.equals("I"))||(acao.equals("A"))||(acao.equals("F"))){
btCon.setVisible(true);
btCan.setVisible(true);
}
if ((acao.equals("X"))||acao.equals("R")){
btVol.setVisible(true);
}
if (acao.equals("I")||(acao.equals("A"))||(acao.equals("X"))){
tpGrupo.remove(pgConsulta);
tpGrupo.addTab("Dados",pgDados);
}
if (acao.equals("F")){
lbTitulo.setText("Filtrar");
tpGrupo.remove(pgConsulta);
tpGrupo.addTab("Filtro",pgFiltro);
}
if (acao.equals("R")){
btTel.setVisible(true);
btImp.setVisible(true);
lbTitulo.setText("Relatório");
tpGrupo.remove(pgConsulta);
tpGrupo.addTab("Relatório",pgRelatorio);
}
}
if ((acao.equals("C"))||(acao.equals("N"))||(acao.equals("V"))){
btNov.setVisible(true);
btAlt.setVisible(true);
btExc.setVisible(true);
btCons.setVisible(true);
btFil.setVisible(true);
btRel.setVisible(true);
btSai.setVisible(true);
btVol.setVisible(false);
btTel.setVisible(false);
btImp.setVisible(false);
btCon.setVisible(false);
btCan.setVisible(false);
lbTitulo.setText("Consultando Dados");
tpGrupo.remove(pgRelatorio);
tpGrupo.remove(pgFiltro);
tpGrupo.remove(pgDados);
tpGrupo.addTab("Consulta",pgConsulta);
}
}
public void actionPerformed(ActionEvent evt){
Object origem = evt.getSource();
if (origem == btNov){
montaTela("I");
}
if (origem == btAlt){
montaTela("A");
}
if (origem == btExc){
montaTela("E");
}
if (origem == btCons){
montaTela("X");
}
if (origem == btFil){
montaTela("F");
}
if (origem == btRel){
montaTela("R");
}
if (origem == btTel){
}
if (origem == btImp){
}
if (origem == btVol){
montaTela("V");
}
if (origem == btCon){
montaTela("C");
}
if (origem == btCan){
montaTela("N");
}
if (origem == btSai){
System.exit(0);
}
}
public static void main(String args[]){
CadPadrao form = new CadPadrao();
form.setVisible(true);
}
}