국비지원학원/Java

41일차

초코맛 2018. 12. 20. 01:49
반응형
*Swing
-아이콘 사용
  • 이미지를 쉽게 사용할 수 있다.
  • ImageIcon
    • javax.swing package ImageIcon class
    • ImageIcon ii = new ImageIcon("경로");
    • 모든 확장자의 파일을 사용할수 있으나, .(bmp는 무거워서 잘쓰지 않는다. jif도 많이 깨지고,, jpg,png많이 사용한다.)
  • 이미지 코딩
    • 필요한 Component에서 사용
    • JButton jb = new Jbutton(ii); <로 아이콘을 가진 버튼이 생성된다.
    • 세분화가 매우 많이 되어잇어서 AWT와 다르게 설정이 잘되어있어서 원하는 위치에 잘 박아넣을 수도 있다.
    • 경로를 "C:\dev\a.jpg" 면 에러가 나는데,\가 특수기호라 \\로 표기하거나, /슬래쉬로 표기하여 준다.(리눅스는 슬래쉬만 가능)


-Border
  • Javax.Swing.border 패키지에서 관련 클래스 제공.
  • 테두리가 없는 Component(거의 모든 Component)에게 테두리를 적용할 때 사용.
  • -타이틀이 있는 테두리)
    • 1.Border 생성
      • TitledBorder tb = new TiltedBorder("타이틀에 들어갈 메세지");   
    • 2.컴포넌트에 적용
      • jb.setBorder(tb);      //JComponent에 존재. 
-한줄입력 받기
  • JTextField
  • getText()로 글을 얻는다.
-비밀번호 입력시 *처리
  • TextField의 setEchoChar(char c);  =>char부분에 *처럼 넣을 문자를 넣는다.
  • awt에서는 다?쓰지만,  Swing에서는 일반문자만 입력받을때 JTextField를 사용한다.
  • JPasswordField //예전에는 *이 나왔으나 요즘엔 ●
  • getPassword()    사용하면 캐렉터형의 배열=>문자열이 아님  (사용자가 비밀번호를 얻으려면)
  • char[] c =getPassword();
  • String(char[] value) 가 가능하기 때문에 String s = new String(c);
  •                                                                                String.valueOf(c); 도 가능.으로 문자열로 얻을수 있다.

JTF
JPF
JL
만 있으면 이창에 뭐가 들어가는지 알수 없다. 따라서 Border로 덧입혀 설명을 해주면 쉽게 알수 있다?

 

-LineBorder
  • 사용법)
  • LineBorder lb= new LineBorder(Color.BLACK);
  • 모든 컴포넌트는 설정 가능.
  • jb.setBorder(lb);
  • //타이틀의 보더는 뭔지 알수있게 타이틀이 들어가지만 라인보더는 테두리를 하나 더 두름으로 강조의 효과를 줄수 있다.

 

-JOptionPane
  • javax.swing패키지의 JOptionPane
  • 다이얼로그를 미리 구현해 놓은 클래스 
  • <하나하나 아이콘넣고 버튼넣고 이벤트 넣고 간단한 창으로 보이는데도 손이 많이가....
  • 생성은 되는데 잘하지 않는다.
  • Static method인 show~~주로 사용함.
  • 입력받기(InputDialog)
    • Stirng s = JOptionPane.showInput Dialog("메세지");
  • 메세지 제공(MessageDialog)
    • JOptionPane.showMessageDialog(new Frame()=Frame의 instance,"메세지");
    • //반환형이 없어 정보만 주고 만다. 이 메세지가 아이디를 입력하세요에 들어간다.
    • 원래는 부모창이 있어야 뜨지만 null로 비워줘도 뜨기는 뜬다. 나중에 에러의 위험이있음
  • Confirm Dialog : 사용자의 의중을 얻을 수 있는 다이얼로그.
    • 정말 삭제하시겠습니까?같은 메세지 예,아니요,취소버튼을 3가지 갖는다.
    • int flag=JOptionPane.showConfirmDialog(Frame instance,"메세지");
    • 사용자가 선택한 값에따라 flag에 0,1,2의 값이 담긴다.
    • 똑같이 Frame부분에 null을 넣을수도 있긴하다.
-JList
  • <MVC Patten으로 되어있어 분리할 수 있다. java.swing.event 패키지에 들어있다.
  • MVC Pattern 이 적용된 클래스.
  • awt와 같으면서 완전히 다르다.
  • view : JList       -
  • Model : DefaultListModel     -데이터추가,삭제        //awt는 이 위두개가 묶여 있는 형태.
  • event : ListSelectionListener        -
  • <JList에 add 랑 remove가 없는데,,,일이 나누어져 있는것.
  • ,,,,,,등

  • 사용법)
    • 1.생성
    • 모델을 사용하지 않고 생성하는경우
      • JLsit jl = new JList();                //
    • 모델을 생성(더많이 사용)
      • DefaultListModel dlm = new DefaultListModel();    //값에 대한 일밖에 안한다.
      • 리스트를 생성해서 모델과 has a 관계로 생성하는 방법(더많이 사용)
      • jList jl = new JList(dlm);
    • 데이터 추가
      • dlm.addElement(값);
    • 인덱스 사용
      • dlm.add(인덱스,값);
    • 크기
      • dlm.size();
    • 값 얻기
      • dlm.get(인덱스);
    • 값 삭제
      • dlm.remove(인덱스);
      • dlm.removeElement(내용값);
      • dlm.clear();//싹삭제
    • 선택한 Item의 인덱스
      • jl.getSelectedIndex();   //값에 대고 클릭하지 인덱스를 아는게 아니기 때문에 JList
    • 선택한 값의 인덱스
      • 인덱스와 값얻기를 써서 얻을수 있는데 더명확
      • dlm.get(jl.getSelectedValue()); 
      • jl.getSelectedValue();    //값만 얻을때에는 

사용자가 하는 일이랑 데이터처리하는 일이랑 구분되어있음!
보는쪽과 데이터쪽의 객체가 하는일이 나누어져있다.!!!
데이터만 볼꺼면 Default~
화면의 이벤트는 JList
JList는 스크롤바가 없닷......JTextArea에도 없닷!!

-JScrollPane
  • ScrollBar를 가지지 않은 컴포넌트에 스크롤바를 추가하는 일.
  • JTextArea, JList, JTable의 객체는 일반적으로 필요한 객체들인데 Scrollbar를 가지지 않는다.
  • 사용법)
  • 1. Component 생성
    • JTextArea jta= new JTextArea();
  • 2.JScrollPane을 생성 & Component를 Has a관계로 선언
    • JScrollPane jsp=new JScrollPane(jta);
  • 3.배치
    • add(jta)   vs   add(jsp)      => has a 관계에서는 무엇을 넣어야 할까? 당근 JScrollPane~!~!
     jta.setLineWrap(true);//줄바꿈 메소드

jta.setWrapStyleWord(true);//줄이 변경되면 단어를 보호하면서 줄을 변경.(한글은 지원되지 않는다. 영어만)

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'국비지원학원 > Java' 카테고리의 다른 글

43일차  (0) 2018.12.20
42일차  (0) 2018.12.20
40일차  (0) 2018.12.19
39일차  (0) 2018.12.19
38일차  (0) 2018.12.18