Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  • 해당 클래스에 부품 나열
  • 기본적인 설정은 생성자에서 설정
  • 리스너 등록하는 방법 (3가지)
  • 레이아웃의 설정
  1. 언어
  2. 자바
  3. 자바 언어 활용

GUI 프레임

Previous값에의한 호출Next생성자

Last updated 2 years ago

프레임을 이용하기 위해서는 Frame 클래스 상속 받아야합니다.

자바와 gui의 관련된 개념에 대한 설명은 다음링크를 참조하시기 바랍니다.

public class MyWindow1 extends Frame

해당 클래스에 부품 나열

Button button1;  
Button button2;  
Panel panel;  

기본적인 설정은 생성자에서 설정

  • 부품 생성, 부품 설정, 부품 조립(add),이벤트 처리(리스너 등록)

  • 부품 생성 : button1=new Button();

  • 부품 설정 : button1.setLabel("버튼1");

  • 부품 조립(add) : panel.add(button1);

  • 이벤트 처리(리스너 등록) :button1.addActionListener(여기에 처리할 위치가 있음);

리스너 등록하는 방법 (3가지)

  1. 자기자신의 클래스 이용(this) button1.addActionListener(this); 자기자신 클래스에 리스너를 implements해야함 public class MyWindow1 extends Frame implements WindowListener

  2. 새로운 클래스를 만들어 이용(new ActionLinst()) ActionListenProc ap=new ActionListenProc(button1,button2); button1.addActionListener(ap); 새로운 클래스는 리스너를 implements해야함

  3. 익명함수 이용

button1.addActionListener(new ActionListener() {  
  public void actionPerformed(ActionEvent e) {
    System.out.println(e.getSource());
  }
}); 

레이아웃의 설정

setLayout(layout유형); layout유형은 다음의 유형들과 같습니다.

  • new FlowLayout()

  • new BorderLayout()

  • new CardLayout()

  • new GridLayout()

SungjukFrame.java - 기본사항 코딩

package StudentManagerProject;

import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class SungjukFrame extends Frame implements WindowListener{

Label idLabel,nameLabel,hpLabel;
TextField idTextField,nameTextField,hpTextField;
Button confirmButton;
Panel infoInputPanel;

public SungjukFrame() {
	idLabel=new Label("학번");
	nameLabel=new Label("이름");
	hpLabel=new Label("전화번호");

	idTextField=new TextField(10);
	nameTextField=new TextField(10);
	hpTextField=new TextField(10);

	confirmButton=new Button("확인");
	infoInputPanel=new Panel();

	infoInputPanel.setLayout(new GridLayout(4,2,10,10));
	infoInputPanel.add(idLabel);
	infoInputPanel.add(idTextField);
	infoInputPanel.add(nameLabel);
	infoInputPanel.add(nameTextField);
	infoInputPanel.add(hpLabel);
	infoInputPanel.add(hpTextField);
	infoInputPanel.add(confirmButton);

	add(infoInputPanel);

	idLabel.setAlignment(Label.CENTER);
	nameLabel.setAlignment(Label.CENTER);
	hpLabel.setAlignment(Label.CENTER);

	infoInputPanel.setBackground(Color.yellow);

	setBounds(100,100,500,200);
	setVisible(true);

	//리스너 등록
	addWindowListener(this);

}

@Override
public void windowOpened(WindowEvent e) {
	// TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent e) {
	System.exit(0);

}

@Override
public void windowClosed(WindowEvent e) {
	// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent e) {
	// TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent e) {
	// TODO Auto-generated method stub

}

@Override
public void windowActivated(WindowEvent e) {
	// TODO Auto-generated method stub

}

@Override
public void windowDeactivated(WindowEvent e) {
	// TODO Auto-generated method stub

}


}
참고링크 : 너굴너굴 조재연의 프로그래밍