안녕하세요.

처음 인사드리는 것 같습니다.

원래 제가 gw베이직,코볼,포트란,z80어셈블리,php,c,c++,c# 다 섭렵 했었는데요.

자바만 못 배웠습니다.

자바 초창기에 나왔을 때, pc에 뭔가를 설치한다는게 영 찝찝 해서요.

그 당시에는 과연 어떤 사람들이 자바를 일일이 다운 받아서 설치할까 의구심이 많았었죠.

그러다가 안드로이드 때문에 자바를 공부중 입니다. ^^;


지금 궁금하게요. Thread와 Frame를 따로따로 파일을 만들어서 연습하면 잘 됩니다.


System.out.println("현재시간:"+new Date()); <= 여기에 출력되는 시간을

txt1.setText(dlg.getDirectory()+dlg.getFile()); <= txt1 여기에 붙일려고 합니다.

그런데, 둘을 한 파일에 넣고 하면 컴파일에서 부터 에러가 나옵니다.


1. 쓰레드 상속과 프레임 상속을 동시에 받는 방법이 있는지.

2. 없다면 클래스간 컴포넌트 접근이 가능한지.


로 검색이 요약되는 것 같습니다.


한 수 지도를 해 주십시오.




import java.awt.*;
import java.awt.event.*;
import java.util.Date;


/*

요점:파일명,클래스명,생성자명이 일치 해야 함

*/

class Timer extends Thread {

 public Timer(String name){
  super(name);

 }
 public void run(){
  try{
   while(true){
    Thread.sleep(1000); 
    System.out.println("현재시간:"+new Date());
   }
  }
  catch(InterruptedException e){
   System.out.println(e.getMessage());
  }
 }
}

public class exe1 extends Frame implements ActionListener{ // 윈도우 = 프레임

 TextField txt1;

 public static void main(String[] args){
  new exe1("윈도예제"); // 생성자를 생성함, 생성하면서 내부 코드도 동시

실행
 }

 // 파일 찾기 "컴포넌트.addActionListener(this);" 함께 사용
 public void actionPerformed(ActionEvent e){ // actionPerformed 재정의 한 것임.
  FileDialog dlg = new FileDialog(this,"파일",FileDialog.LOAD);
  dlg.show();
  txt1.setText(dlg.getDirectory()+dlg.getFile());
 }
 // 파일 찾기

 public exe1(String str){

  Timer obj = new Timer("타이머");
  obj.start();  

  //-------- 창 만들기 -------
  super(str);
  setBounds(200,200,1000,500);
  setVisible(true);
  setLayout(new FlowLayout());
  //-------- 창 만들기 -------

  //-------- 버턴 만들기 -------
  Button 버턴1 = new Button("오더");
  add(버턴1);
  Button 버턴2 = new Button("완료");
  add(버턴2);
  버턴2.addActionListener(this);
  //-------- 버턴 만들기 -------

  //-------- 체크박스 만들기 -------
  Checkbox cbx1 = new Checkbox("기사");
  Checkbox cbx2 = new Checkbox("오더");
  add(cbx1);
  add(cbx2);
  //-------- 체크박스 만들기 -------


  //-------- 라디오버튼 만들기 -------
  CheckboxGroup cbg = new CheckboxGroup();
  Checkbox r1 = new Checkbox("삼성",cbg,true);
  Checkbox r2 = new Checkbox("역삼",cbg,false);
  Checkbox r3 = new Checkbox("논형",cbg,false);

  add(r1);
  add(r2);
  add(r3);
  //-------- 라디오버튼 만들기 -------

  //-------- 선택 버튼 만들기 -------
  Choice choice1 = new Choice();
  choice1.add("청담");
  choice1.add("잠원");
  choice1.add("한남");
  choice1.add("종로");
  choice1.add("순화");
  add(choice1);
  //-------- 선택 버튼 만들기 -------


  //-------- 리스트 만들기 -------
  List list1 = new List(5,true);
  list1.add("종로");
  list1.add("삼청");
  list1.add("을지");
  list1.add("신당");
  list1.add("관훈");
  list1.add("북창");
  list1.add("신문");
  list1.add("세종");
  add(list1);
  list1.setLocation(10,500);
  //-------- 리스트 만들기 -------


  //-------- 텍스트필드 만들기 -------  
  txt1 = new TextField("....",100);
  add(txt1);
  //-------- 텍스트필드 만들기 -------  


  //메뉴
  MenuBar mb = new MenuBar();

  Menu file = new Menu("파일");
  MenuItem file_new = new MenuItem("새 파일");
  MenuItem file_open = new MenuItem("불러오기");
  MenuItem file_close = new MenuItem("파일닫기");

  file.add(file_new);
  file.add(file_open);
  file.add(file_close);
  mb.add(file);

  file_open.addActionListener(this);

  Menu edit = new Menu("편집");
  MenuItem edit_copy = new MenuItem("오려두기");
  MenuItem edit_paste = new MenuItem("붙이기");
  MenuItem edit_cut = new MenuItem("잘라내기");
  edit.add(edit_copy);
  edit.add(edit_paste);
  edit.add(edit_cut);

 // mb.add(edit);
  file.add(edit); // mb 이면 주메뉴로 붙고, file 이면 file 메뉴로 붙음

  setMenuBar(mb);
  //메뉴

 }// 클래스 끝

}