2014-01-19 3 views
0

Я создаю основной класс, который запускает 5 классов и позволяет передавать строки друг другу. Я просто разместить основной класс + класс 1 и 4.Классы Java-классов

Основной класс:

public class main { 
public static void main(String[] args){ 

    class4 c4 = new class4(c1); 

    class3 c3 = new class3(c4); 

    class2 c2 = new class2(c3); 
    c2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    c2.setSize(200,100); 
    c2.setLocationRelativeTo(null); 
    c2.setVisible(true); 

    class1 c1 = new class1(c2); 
    c1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    c1.setSize(200,100); 
    c1.setLocationRelativeTo(null); 
    c1.setVisible(true); 


} 

}

Класс 1:

public class class1 extends JFrame{ 
private JButton jb; 

private class2 c2; 
public class1(class2 c2){ 
    this(); 
    this.c2 = c2; 
    } 


public class1(){ 
    super(""); 
    setLayout(new FlowLayout()); 

    jb = new JButton("click click"); 
    add(jb); 

    jb.addActionListener(
      new ActionListener(){ 
       public void actionPerformed(ActionEvent e){ 
        sayHi("Hi buddy"); 
       }}); 
} 
public void sayHi(String x){ 
    c2.recieveHi(x); 
} 

public void recieveHi(String x){ 
    System.out.println(x); 
} 

} 

Класс 5:

public class class4 { 

private class1 c1; 
public class4(class1 c1){ 
    //this(); 
    this.c1 = c1; 
} 
public void recieveHi(String x){ 
    System.out.println(x); 
    killMessenger(); 
} 
public void killMessenger(){ 
    String s = "back to class 1"; 
    c1.recieveHi(s); 
} 

} 

Класс 1 передает строку в класс2, которая проходит Строка 3 класса и т.д .. Когда Class4 Получать строки, мне нужно передать строку в class1 .. Как вы можете увидеть в моем главном классе, мне нужно, чтобы связать их, например,

class 1 c1 = new class1(c2); 

Делать это с class4 c4 = new class4(c1) Безразлично» t, потому что класс1 еще не создан. Там всегда будет потерять конец, поэтому может быть способ его исправить.

ответ

2

У вас может быть метод setter, поэтому вы не передадите c1 в конструкторе, но после создания экземпляра class1. В вашем классе class4

public void setClass1Object(class1 pC1) { 
    this.c1 = pC1; 
} 
+0

спасибо, но didnt работал .. Я думаю, это потому, что я не импортировал метод правильно, не могли бы вы помочь? error is NullPointerException –

+0

Есть ли у вас ошибка? Или это просто не работает, как ожидалось. Пожалуйста, предоставьте дополнительную информацию. – Christian

+0

Ошибка: Исключение в потоке «AWT-EventQueue-0» java.lang.NullPointerException –

Смежные вопросы