안녕하세요.
처음 인사드리는 것 같습니다.
원래 제가 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);
//메뉴
}// 클래스 끝
}
버턴잼
implements Runnable하고 Run 구현해서 start()를 call
시발