java - Why my JTable isn't showing? -
guys have problem jtable, jtable(tbllivro) contents should result(arraylist) of query (working) , when try put rsult in jtable doesn't work, doesn't show errors, yet not show it. why?
here code
package view; import java.awt.borderlayout; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.util.arraylist; import java.util.list; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextfield; import model.livro; import control.livrocontrol; import javax.swing.jtable; import javax.swing.jscrollpane; import javax.swing.table.defaulttablemodel; public class livroview extends jframe implements actionlistener { private static final long serialversionuid = 1l; private jlabel lblidlivro, lbllombada, lbltitulo, lbltitulointernacional, lbledicao, lbleditora, lblautor ; private jtextfield txtidlivro, txttombo, txttitulo, txttitulointernacional, txtedicao, txteditora, txtautor; private jbutton btnadicionar, btnpesquisar, btnexcluir; private jpanel painelprincipal, painelgeral, painelbotoes, paineljpanel; private jtable tbllivros; private list<livro> encontrados; defaulttablemodel modelo; public livroview() { super("manutenção de livros"); encontrados = new arraylist<livro>(); lblidlivro = new jlabel("código livro:"); lbllombada = new jlabel("tombo:"); lbltitulo = new jlabel("título:"); lbltitulointernacional = new jlabel("título internacional:"); lbledicao = new jlabel("edição:"); lbleditora = new jlabel("editora:"); lblautor = new jlabel("autor:"); txtidlivro = new jtextfield(20); txttombo= new jtextfield("tombo"); txttitulo = new jtextfield(20); txttitulointernacional= new jtextfield(20); txtedicao = new jtextfield(20); txteditora= new jtextfield(20); txtautor= new jtextfield("autor"); txtidlivro.settext(""); txttombo.settext(""); txttitulo.settext(""); txttitulointernacional.settext(""); txtedicao.settext(""); txteditora.settext(""); txtautor.settext(""); btnadicionar = new jbutton("adicionar"); btnexcluir = new jbutton("excluir"); btnpesquisar = new jbutton("pesquisar"); btnadicionar.addactionlistener(this); btnpesquisar.addactionlistener(this); btnexcluir.addactionlistener(this); painelprincipal = new jpanel(); painelgeral = new jpanel(); painelbotoes = new jpanel(); paineljpanel = new jpanel(); painelprincipal.setlayout(new borderlayout()); painelgeral.setlayout(new gridlayout(7,2)); painelbotoes.setlayout(new gridlayout(2,1)); painelgeral.add(lblidlivro); painelgeral.add(txtidlivro); painelgeral.add(lbllombada); painelgeral.add(txttombo); painelgeral.add(lbltitulo); painelgeral.add(txttitulo); painelgeral.add(lbltitulointernacional); painelgeral.add(txttitulointernacional); painelgeral.add(lbledicao); painelgeral.add(txtedicao); painelgeral.add(lbleditora); painelgeral.add(txteditora); painelgeral.add(lblautor); painelgeral.add(txtautor); painelbotoes.add(btnadicionar); painelbotoes.add(btnpesquisar); painelbotoes.add(btnexcluir); jscrollpane scrollpane = new jscrollpane(); scrollpane.setbounds(55, 80, 359, 235); paineljpanel.add(scrollpane); tbllivros = new jtable(); tbllivros.setmodel(new defaulttablemodel( new object[][] { }, new string[] { "tombo", "t\u00edtulo", "t\u00edtulo internacional", "edi\u00e7\u00e3o", "autor", "editora" } )); modelo = new defaulttablemodel(); tbllivros.getcolumnmodel().getcolumn(0).setpreferredwidth(54); tbllivros.getcolumnmodel().getcolumn(1).setpreferredwidth(104); tbllivros.getcolumnmodel().getcolumn(2).setpreferredwidth(136); tbllivros.getcolumnmodel().getcolumn(4).setpreferredwidth(102); // modelo = (defaulttablemodel) tbllivros.getmodel(); scrollpane.setviewportview(tbllivros); paineljpanel.setlayout(null); painelprincipal.add(painelgeral, borderlayout.north); painelprincipal.add(painelbotoes, borderlayout.center); this.setsize(500,300); this.setvisible(true); this.setcontentpane(painelprincipal); this.setdefaultcloseoperation(jframe.exit_on_close); } @override public void actionperformed(actionevent e) { string cmd = e.getactioncommand(); livrocontrol control = new livrocontrol(); if ("adicionar".equalsignorecase(cmd)){ boolean adicionado = false; adicionado = control.adicionarlivro(txtidlivro.gettext(), txttitulo.gettext(), txttitulointernacional.gettext(), txttombo.gettext(), txtautor.gettext(), txtedicao.gettext(), txteditora.gettext()); if (adicionado == true){ txtidlivro.settext(""); txttombo.settext(""); txttitulo.settext(""); txttitulointernacional.settext(""); txtedicao.settext(""); txteditora.settext(""); txtautor.settext(""); txtidlivro.requestfocus(); } } else if("excluir".equalsignorecase(cmd)){ control.excluirlivro(txttombo.gettext()); txttombo.settext(""); } else if("pesquisar".equalsignorecase(cmd)){ if (!txttombo.gettext().equals("")){ livro l = control.pesquisarlivroportombo(txttombo.gettext()); if (l!=null){ txtidlivro.settext(string.valueof(l.getidlivro())); txttombo.settext(l.gettombo()); txttitulo.settext(l.gettitulo()); txttitulointernacional.settext(l.gettitulointernacional()); txtedicao.settext(l.getedicao()); txteditora.settext(l.geteditora()); txtautor.settext(l.getautor()); } } else if (!txtautor.gettext().equals("")){ encontrados = control.pesquisarlivroporautor(txtautor.gettext()); if (encontrados!= null){ (livro dados : encontrados){ object[] objetotombo = new object[1]; object[] objetotitulo = new object[2]; object[] objetotitulointernacional = new object[3]; object[] objetoedicao = new object[4]; object[] objetoautor = new object[5]; object[] objetoeditora = new object[6]; objetotombo[0] = dados.gettombo(); objetotitulo[0] = dados.gettitulo(); objetotitulointernacional[0] = dados.gettitulointernacional(); objetoedicao[0] = dados.getedicao(); objetoautor[0]= dados.getautor(); objetoeditora[0]= dados.geteditora(); //modelo.setnumrows(0); modelo.addrow(objetotombo); modelo.addrow(objetotitulo); modelo.addrow(objetotitulointernacional); modelo.addrow(objetoedicao); modelo.addrow(objetoautor); modelo.addrow(objetoeditora); } this.setsize(700,500); tbllivros.setmodel(modelo); paineljpanel.add(tbllivros); paineljpanel.setvisible(true); paineljpanel.repaint(); painelprincipal.add(paineljpanel, borderlayout.south); painelprincipal.repaint(); } } else { encontrados = control.pesquisarlivropornome(txttitulo.gettext()); if (encontrados!= null){ } } } } public static void main(string[] args) { new livroview(); } }
thank you!
because didn't added jscrollpane
on painelprincipal
. can this:
painelprincipal.add(scrollpane, borderlayout.south);
also:
- do not call
setvisible
jframe
before components added. - call
pack
instead ofsetsize
jframe - avoid using null layout , absolute positioning.
regards , luck!
edit:
import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextfield; import javax.swing.jtable; import javax.swing.jscrollpane; import javax.swing.table.defaulttablemodel; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; public class livroview extends jframe implements actionlistener { private static final long serialversionuid = 1l; private jlabel lblidlivro, lbllombada, lbltitulo, lbltitulointernacional, lbledicao, lbleditora, lblautor ; private jtextfield txtidlivro, txttombo, txttitulo, txttitulointernacional, txtedicao, txteditora, txtautor; private jbutton btnadicionar, btnpesquisar, btnexcluir; private jpanel painelprincipal, painelgeral, painelbotoes, paineljpanel; private jtable tbllivros; defaulttablemodel modelo; public livroview() { super("manutenção de livros"); lblidlivro = new jlabel("código livro:"); lbllombada = new jlabel("tombo:"); lbltitulo = new jlabel("título:"); lbltitulointernacional = new jlabel("título internacional:"); lbledicao = new jlabel("edição:"); lbleditora = new jlabel("editora:"); lblautor = new jlabel("autor:"); txtidlivro = new jtextfield(20); txttombo= new jtextfield("tombo"); txttitulo = new jtextfield(20); txttitulointernacional= new jtextfield(20); txtedicao = new jtextfield(20); txteditora= new jtextfield(20); txtautor= new jtextfield("autor"); txtidlivro.settext(""); txttombo.settext(""); txttitulo.settext(""); txttitulointernacional.settext(""); txtedicao.settext(""); txteditora.settext(""); txtautor.settext(""); btnadicionar = new jbutton("adicionar"); btnexcluir = new jbutton("excluir"); btnpesquisar = new jbutton("pesquisar"); btnadicionar.addactionlistener(this); btnpesquisar.addactionlistener(this); btnexcluir.addactionlistener(this); painelprincipal = new jpanel(); painelgeral = new jpanel(); painelbotoes = new jpanel(); paineljpanel = new jpanel(); painelprincipal.setlayout(new borderlayout()); painelgeral.setlayout(new gridlayout(7,2)); painelbotoes.setlayout(new gridlayout(2,1)); painelgeral.add(lblidlivro); painelgeral.add(txtidlivro); painelgeral.add(lbllombada); painelgeral.add(txttombo); painelgeral.add(lbltitulo); painelgeral.add(txttitulo); painelgeral.add(lbltitulointernacional); painelgeral.add(txttitulointernacional); painelgeral.add(lbledicao); painelgeral.add(txtedicao); painelgeral.add(lbleditora); painelgeral.add(txteditora); painelgeral.add(lblautor); painelgeral.add(txtautor); painelbotoes.add(btnadicionar); painelbotoes.add(btnpesquisar); painelbotoes.add(btnexcluir); tbllivros = new jtable(); tbllivros.setmodel(new defaulttablemodel( new object[][] { }, new string[] { "tombo", "t\u00edtulo", "t\u00edtulo internacional", "edi\u00e7\u00e3o", "autor", "editora" } )); jscrollpane scrollpane = new jscrollpane(tbllivros); painelprincipal.add(painelgeral, borderlayout.north); painelprincipal.add(painelbotoes, borderlayout.center); painelprincipal.add(scrollpane, borderlayout.south); this.setcontentpane(painelprincipal); this.setdefaultcloseoperation(jframe.exit_on_close); this.pack(); this.setvisible(true); } @override public void actionperformed(actionevent e) { string cmd = e.getactioncommand(); if ("adicionar".equalsignorecase(cmd)){ boolean adicionado = false; if (adicionado == true){ txtidlivro.settext(""); txttombo.settext(""); txttitulo.settext(""); txttitulointernacional.settext(""); txtedicao.settext(""); txteditora.settext(""); txtautor.settext(""); txtidlivro.requestfocus(); } } else if("excluir".equalsignorecase(cmd)){ txttombo.settext(""); } else if("pesquisar".equalsignorecase(cmd)){ if (!txttombo.gettext().equals("")){ } else if (!txtautor.gettext().equals("")){ } } } public static void main(string[] args) { new livroview(); } }
ok, here code. altough had remove pieces of code make functional.
Comments
Post a Comment