2017-04-14 1 views
-2

패널 작성 마녀에 문제가있어서 파일을 읽고 쓸 수 있습니다. 나는 책 (필드 저자, 페이지, 출판 날짜)과 같은 일부 수업을 갖고 다른 만화 수업 마녀는 수업 서를 확장한다는 것을 의미합니다. 이 수업에서는 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/). –

답변

0

컴파일하지 않은 경우 코드를 확인해야합니다.

는 오류가 발견 :

JPanel upperpane; = new JPanel(); 

그것은해야한다 :

더 나은 도움을 빨리 들어
JPanel upperpane = new JPanel(); 
+0

미안하지만, 내가 그것을 추가하기 전에 약간의 편집을했다. 그리고 나는 나의 실수를 점검하지 않았다. 내 문제를 어떻게 해결해야합니까? – xarix

관련 문제