子フレームを作成することをタスクとするアプレット名 ParentApplet.java を作成しました 子
フレームのコーディングは ChildFrame.java で定義されています
ParentApplet.java
public class ParentApplet extends Applet {
ChildFrame frame;
private static int time = 0;
@Override
public void start() {
frame.setVisible(true);
}
@Override
public void stop() {
frame.setVisible(false);
}
@Override
public void init() {
frame = new ChildFrame("Child");
this.setSize(400, 400);
}
@Override
public void paint(Graphics g) {
g.drawString("Child's Info : " + (++time), 50, 100);
g.drawString(frame.getMessage(), 400, 100);
System.out.println(frame.getMessage().isEmpty() ? "Empty" : frame.getMessage());
}
}
ChildFrame.java
public class ChildFrame extends Frame {
private String mess = "";
public ChildFrame(String title) {
super(title);
addMouseListener(new MyMouseAdapter(this));
addWindowListener(new MyWindowAdapter(this));
setSize(300, 500);
}
public String getMessage() {
return mess;
}
public void setMessage(String mess) {
this.mess = mess;
(new ParentApplet()).repaint();
System.out.println("Click");
}
}
MyMouseAdapter.java
public class MyMouseAdapter extends MouseAdapter {
ChildFrame frame;
public MyMouseAdapter(ChildFrame frame) {
this.frame = frame;
}
@Override
public void mouseClicked(MouseEvent e) {
frame.setMessage("Mouse Cliked in Child");
}
}
MyWindowAdapter.java
public class MyWindowAdapter extends WindowAdapter {
ChildFrame frame;
public MyWindowAdapter(ChildFrame frame) {
this.frame = frame;
}
@Override
public void windowClosing(WindowEvent we) {
frame.setVisible(false);
}
}
ChildFrame クラスから repaint メソッドを呼び出した後でも、再び paint メソッドに到達できなくなりました。私が何か間違ったことをしたのか、それとも理解する必要があるのか 教えてください。
前もって感謝します ガガンディープ・シン