まず第一に、これはかなり基本的な問題であるから呼び出すことが、私はちょうどカントはそれを得るように見えるとき、ので、ここでOK は、これは私ですクラス階層の方法の他のクラス
|class A |
|new B();|
|new C();|
/ \
/ \
|Class B | |Class C |
|new D();| |method E(){}|
|
|Class D |
|Invokes method E|
私のプログラムの一般的な概要ですクラスCの新しいインスタンスを作成せずにクラスDから非静的メソッドEを呼び出す場合、これを行う方法があるか、クラス階層を再構成する必要がありますか?
** EDIT:**ここで(ただし、クラスBなし)私の問題を表示するための実際のコードは次のとおりです。
import javax.swing.JFrame;
import javax.swing.JSplitPane;
public class TheFrame extends JFrame{
public TheFrame(){
setTitle("Suduku Solver");
add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
new TextLabel(), new ChangeButton()));
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(300,300);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
new TheFrame();
}
}
import javax.swing.JLabel;
public class TextLabel extends JLabel{
public TextLabel(){
setText("This is the Label");
}
public void ChangeLabel(){
setText("Changed Label");
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class ChangeButton extends JButton {
public ChangeButton(){
setText("Click to change Label");
addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
//Invoke TextLabel changeText method here
}
});
}
}
私はボタンを
あなたのASCII図は不明です。代わりに実際のコードを投稿できますか? – Bohemian
'C'クラスのインスタンスを' A'クラスから 'B'クラスに渡すことができます。次に、このインスタンスを 'D'クラスに渡し、' D'クラスでインスタンスを作成せずに 'D'クラスの' method E'を呼び出します。 – alayor