我遇到创建面板的问题,这将允许我读/写文件。我的意思是我有一些类似书(有字段作者,页面,出版日期)和另一个扩展课本的漫画课。在这个课程中,我有3个另外的字段,也有书中的这个。现在我想创建一个面板来编辑类漫画中的对象,面板应该有两个类的字段,但我也不想在编写另一个同时扩展book的类时重复代码。
到目前为止我已经
了 abstract public class book implements Serializable {
String author;
String publication_date;
Integer pages;
public String toString(){
return "";
}
public void edit(){};
} 这是我的类漫画,将通过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());
}
框架是容器
public class Frame extends JFrame implements Serializable {
public Frame(JPanel panel) {
add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
}
我想避免复制/粘贴代码,在每个类中重复代码,从代码类创建字段
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);
}
有人可以给我一个建议我怎么能这样做,因为所有时间重复代码都很糟糕但我不知道怎么做。
答案 0 :(得分:0)
只是一个友好的建议你应该检查你的代码,除非你没有编译。
发现错误:
JPanel upperpane; = new JPanel();
应该是:
JPanel upperpane = new JPanel();