java - JComponent dont know how create panel withoud repeat code -


i having problem create panel witch allow me read/write file. mean have class book(with fields author, pages, publication date) , comics class witch extend class book. in class have 3 fields , have book. want create panel edit object class comics panel should have field both class dont want duplicate code when write class witch extends book.

so far have

 abstract public class book implements serializable {     string author;     string publication_date;     integer pages; public string tostring(){     return ""; } public void edit(){}; 

} , class comics witch edit through jpanel

 public class comics extends book implements serializable {  integer number1;  integer number2;  string name;  public samochod(string author, string publication_date, int pages,       int number1, int number2, string name){     this.author = author;     this.publication_date = publication_date;     this.pages = pages;     this.number1 = number1;     this.number2 = number2;     this.name = name;  }  public string tostring(){     return author + publication_date + pages + number1 + number2 + name; }  private jpanel createpanel(){     return new editcomics(this); } public void e(){      new frame(createpanel()); } 

frame witch container

public class frame extends jframe implements serializable { public frame(jpanel panel) {     add(panel);     setdefaultcloseoperation(jframe.exit_on_close);     pack();     setvisible(true); } } 

and avoid copy/paste code witch in every class repeat code witch create fields book class

public class editcomics extends jpanel implements serializable{ comics obiekt ; private  jtextfield author = new jtextfield(); private  jtextfield publication_date = new jtextfield(); private  jtextfield pages = new jtextfield(); private  jtextfield number1 = new jtextfield(); private  jtextfield number2 = new jtextfield(); private  jtextfield name = new jtextfield();  public editcomics(comics obiekt){     super();     this.obiekt = obiekt;     setlayout(new borderlayout());     createpanels(); }  private void createpanels() {     jpanel upperpanel = new jpanel();     upperpane.setlayout(new gridlayout(3, 2));      jbutton save = new jbutton("save");     save.addactionlistener(new convertlistener());      author.settext(obiekt.author);     publication_date.settext(publication_date.marka);     pages.settext(obiekt.pages.tostring());     number1.settext(obiekt.number1.tostring());     number2.settext(obiekt.number2.tostring());     name.settext(obiekt.name);      upperpanel.add(author);     upperpanel.add(new jlabel("author:"));     upperpanel.add(publication_date);     upperpanel.add(new jlabel("publication_date: "));     upperpanel.add(pages);     upperpanel.add(new jlabel("pages: "));     upperpanel.add(number1);     upperpanel.add(new jlabel("number1: "));     upperpanel.add(number2);     upperpanel.add(new jlabel("number2: "));     upperpanel.add(name);     upperpanel.add(new jlabel("name"));      this.add(upperpanel, borderlayout.center);     this.add(save, borderlayout.south); } 

can give me advice how can because time repeat code bad dont know how it.

just friendly advice should check code out unless haven't compiled.

an error spotted:

jpanel upperpane; = new jpanel(); 

it should be:

jpanel upperpane = new jpanel(); 

Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -