2017-04-14 8 views
-2

私はパネルの魔法使いに問題があり、私はファイルへの読み書きができます。私は、本のようないくつかのクラス(フィールドの著者、ページ、出版日)と別の漫画クラスの魔女はクラスの本を拡張することを意味します。このクラスで私は3つの別のフィールドを持っており、これも本から持っています。今、私はパネルが両方のクラスからのフィールドを持っている必要がありますクラスの漫画からオブジェクトを編集するパネルを作成するが、私はまた、別のクラスの魔法使いを書くときに重複したコードをしたくない。JComponentはどのようにパネルを作成してコードを繰り返すかわかりません

これまでのところ、私は

abstract public class book implements Serializable { 
    String author; 
    String publication_date; 
    Integer pages; 
public String toString(){ 
    return ""; 
} 
public void edit(){}; 

} を持っており、これは私のクラスの漫画の魔女では、フレームの魔女がコンテナ

public class Frame extends JFrame implements Serializable { 
public Frame(JPanel panel) { 
    add(panel); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    pack(); 
    setVisible(true); 
} 
} 

そして私だろうです

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

のJPanelて編集されます避けるようにすべてのクラスの反復コードの魔女のコピー/貼り付けコードの魔女が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/)。 –

答えて

0

コンパイルしていない限り、コードをチェックしてください。

発見エラー:

JPanel upperpane; = new JPanel(); 

それは次のようになります。早いほど良いヘルプについて

JPanel upperpane = new JPanel(); 
+0

申し訳ありませんが、私はそれを追加する前にいくつかの編集を行いました。私は間違いをチェックしませんでした。どのように私の問題を解決する必要があります任意のアイデアを持っている? – xarix

関連する問題