JComponent不知道如何创建面板有重复的代码

问题描述:

我有创建面板女巫的问题将允许我读取/写入文件。我的意思是我有一些像书一样的课(与字段的作者,页面,出版日期)和另一个漫画课女巫延长班书。在这个课上,我有3个其他领域,也有书。现在我想创建面板从类漫画编辑对象面板应该有两个类的字段,但我也不想重复的代码,当我写另一类女巫也延伸书。JComponent不知道如何创建面板有重复的代码

到目前为止,我已经

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); 
} 
} 

,我会像避免复制/粘贴代码巫婆在每个类重复代码女巫创建字段从B. OOK类

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

为了更好地帮助更快,发布[MCVE]或[短的,独立的,正确的示例](HTTP:// www.sscce.org/)。 –

只是一个友好的建议,你应该检查你的代码,除非你没有编译。

发现错误:

JPanel upperpane; = new JPanel(); 

它应该是:

JPanel upperpane = new JPanel(); 
+0

对不起,但做了一些编辑,然后我添加它,所以我没有检查我的错误。你有什么想法我应该如何解决我的问题? – xarix