ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [11회차-①] JAVA (스윙 컴포넌트)
    JAVA 2021. 4. 6. 20:58

    강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정

    강의 날짜 : 21.04.06

     

    //그래프 그리기
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class MyPanel extends JPanel implements ActionListener{
    	JTextField a,b,c;
    	double A,B,C;
    	
    	public MyPanel() {
    		a=new JTextField("1.0",10); 
    		b=new JTextField("-5.0",10);
    		c=new JTextField("6.0",10);
    		//텍스트 필드 패널에 삽입
    		add(a);
    		add(b);
    		add(c);
    		
    		JButton button = new JButton("DRAW"); //버튼 생성
    		add(button); //버튼 패널에 삽입
    		button.addActionListener(this); //버튼에 이벤트 권한 부여
    	}
    		
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		//parseDouble 문자열을 실수형으로 바꿔줌
    		A=Double.parseDouble(a.getText());
    		B=Double.parseDouble(b.getText());
    		C=Double.parseDouble(c.getText());
    		repaint(); //화면 다시 그림	
    	}
    
    	@Override
    	protected void paintComponent(Graphics g) {
    	
    		super.paintComponent(g);
    		
    		Graphics2D g2 =(Graphics2D) g; //2차원도형으로 형변환
    		g2.drawLine(0, 200, 400, 200); //x축 그림
    		g2.drawLine(200, 0, 200, 400); //y축 그림
    		g2.setPaint(Color.red); //색 설정
    		for(int i=-20;i<20;i++) {
    			//좌표 설정	
    			int x=i;
    			int y=(int)(A*x*x-B*x+C);
    			g2.fillOval(200+x-2, 200-y-2, 4, 4); //빨강으로 원 채워줌
    		}	
    	}
    
    	public static void main(String[] args) {
    		
    		JFrame f= new JFrame(); //프레임 생성
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.add(new MyPanel()); //프레임에 패널 삽입
    		f.setSize(500,400);
    		f.setVisible(true);
    	}
    }

    초기 상태
    버튼을 누른 경우

     

    1. 이미지 레이블 & 이미지 버튼

     

    //이미지 레이블
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    
    public class DogIcon extends JFrame implements ActionListener{
    	public JPanel panel;
    	public JLabel label;
    	public JButton button;
    	
    	public DogIcon() {
    		
    		setTitle("이미지레이블");
    		setSize(300,250);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		panel = new JPanel(); //패널 생성
    		label = new JLabel("이미지를 보려면 아래 버튼을 누르세요"); //레이블 생성
    		button = new JButton("이미지 레이블"); //버튼 생성
    		ImageIcon icon=new ImageIcon("alien.png"); //아이콘 이미지 생성
    		
    		button.setIcon(icon); //버튼에 아이콘 이미지를 가져와 버튼처럼 쓴다
    		button.addActionListener(this); //버튼에 액션 권한 부여
    		
    		panel.add(label); //패널에 레이블 삽입
    		panel.add(button); //패널에 버튼 삽입
    		add(panel); //프레임에 패널 삽입
    		setVisible(true);
    	}
    	
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		
    		ImageIcon dog=new ImageIcon("dog.gif"); //이미지 아이콘에 dog 저장
    		label.setIcon(dog); //레이블을 아이콘 이미지로 설정
    		label.setText(null); //텍스트는 공백
    	}
        
    	public static void main(String[] args) {
    		DogIcon d= new DogIcon();
    	}
    }

     

     

    2. 체크 박스

     

    이름 설명
    생성자 JCheckBox () 레이블이 없는 Checkbox를 생성
    JCheckbox (String label) 지정된 레이블의 Checkbox생성
    JCheckbox (String label ,
     boolean selected)
    지정된 상태와 레이블을 가지는 Checkbox생성
    메소드 String getText () 체크 박스에 표시되는 텍스트를 가져옴
    Boolean isSelected () 만약 체크 박스가 선택되면 true를 반환
    void setSelected (boolean value) 매개변수가 true이면 체크 박스를 체크 상태로 만듬
    void setText (String text) 체크박스 텍스트를 설정

     

    //체크박스
    import java.awt.GridLayout;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    
    import javax.swing.ImageIcon;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    
    //체크박스 활용을 위해 ItemListener인터페이스 사용
    public class CheckBoxTest extends JPanel implements ItemListener{
    
    	JCheckBox[] buttons = new JCheckBox[3]; //체크 박스 배열
    	String[] fruits = { "apple","grape","orange"}; //문자열 배열
    	JLabel[] pictureLabel = new JLabel[3]; //레이블 배열
    	ImageIcon[] icon = new ImageIcon[3]; //이미지 아이콘 배열
    	
    	public CheckBoxTest() { //생성자
    		super(new GridLayout(0,4));
    		
    		for(int i=0;i<3;i++) {
    			buttons[i]=new JCheckBox(fruits[i]); //버튼에 문자열 배열 원소 텍스트가 출력되도록 생성
    			buttons[i].addItemListener(this); //버튼에 이벤트 권한 부여
    			pictureLabel[i]=new JLabel(fruits[i]+".gif"); //레이블에 문자열 배열 원소의 텍스트가 출력
    			icon[i] = new ImageIcon(fruits[i]+".gif"); //아이콘은 문자열에 해당하는 이미지를 가져옴
    		}
            
    		JPanel checkPanel = new JPanel(new GridLayout(0,1)); //패널 생성
            
    		for(int i=0;i<3;i++) {
    			checkPanel.add(buttons[i]); //패널에 버튼 삽입	
    		}
            
    		add(checkPanel); //프레임에 패널 삽입
    		//프레임에 레이블 삽입
    		add(pictureLabel[0]); 
    		add(pictureLabel[1]);
    		add(pictureLabel[2]);
    	}
    	
    	@Override
    	public void itemStateChanged(ItemEvent e) { //인터페이스의 추상메소드
    		
    		ImageIcon image = null; //초기화
    		Object source = e.getItemSelectable(); //아이템이 선택된 위치를 반환해줌
    		for(int i=0;i<3;i++) {
    			if(source==buttons[i]) {
    				if(e.getStateChange()==ItemEvent.DESELECTED) //선택 해제되면
    					pictureLabel[i].setIcon(null); //아이콘 이미지를 삭제
    				else pictureLabel[i].setIcon(icon[i]); // 아니면 이미지 보여줌
    			}
    		}
    		
    	}
        
    	public static void main(String[] args) {
    		
    		JFrame frame = new JFrame("CheckBox Demo");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		CheckBoxTest panel = new CheckBoxTest(); 
    		panel.setOpaque(true); //투명도 설정하는 메소드
    		frame.add(panel); //패널 프레임에 삽입
    		frame.setSize(500, 200);
    		frame.setVisible(true);	
    	}
    }

     

     

     

    3. 라디오 박스

     

    //라디오 버튼
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.BorderFactory;
    import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.border.Border;
    
    //라디오 버튼은 ActionListener 인터페이스로 활용
    public class RadioButtonFrame extends JFrame implements ActionListener{
    	
    	private JRadioButton small,medium,large;
    	private JLabel text;
    	private JPanel topPanel,sizePanel,resultPanel;
    	
    	public RadioButtonFrame() { //생성자
    		setTitle("라디오 버튼 테스트");
    		setSize(300,150);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		topPanel=new JPanel(); //레이블을 표시하기 위한 패널1
    		JLabel label =new JLabel("어떤 크기의 커피를 주문하시겠습니까?"); //레이블 생성
    		topPanel.add(label); //레이블을 패널1에 삽입
    		
    		add(topPanel,BorderLayout.NORTH); //프레임에 패널1 삽입
    		
    		sizePanel=new JPanel(); //사이즈 라디오 박스를 표시하기 위한 패널2
            //라디오 버튼 각각 생성
    		small = new JRadioButton("small size");
    		medium = new JRadioButton("medium size");
    		large = new JRadioButton("large size");
            //라디오 박스의 테두리 
    		Border border=BorderFactory.createTitledBorder("크기");
    		sizePanel.setBorder(border);
    		
    		//라디오 버튼을 사용하면 무조건 사용하는 메소드. 라디오 버튼을 그룹으로 묶어준다
    		ButtonGroup size = new ButtonGroup(); 
    		
            //그룹에 라디오 버튼 삽입
    		size.add(small);
    		size.add(medium);
    		size.add(large);
    		
            //라디오 버튼에 이벤트 권한 부여
    		small.addActionListener(this);
    		medium.addActionListener(this);
    		large.addActionListener(this);
    		
    		//패널2에 라디오 버튼 삽입
    		sizePanel.add(small);
    		sizePanel.add(medium);
    		sizePanel.add(large);
    		
    		add(sizePanel,BorderLayout.CENTER); //프레임의 중간에 패널2 삽입
    		
    		resultPanel=new JPanel(); //출력값을 나타낼 패널3
    		text=new JLabel("크기가 선택되지 않았습니다."); //레이블 생성
    		text.setForeground(Color.red); //전경색 빨강
    		resultPanel.add(text); //패널3에 레이블 삽입 
    		add(resultPanel,BorderLayout.SOUTH); //프레임의 남쪽에 패널3 삽입
    		setVisible(true);
    	}
    	
    	@Override
    	public void actionPerformed(ActionEvent e) {
    	
    		if(e.getSource()==small) {
    			text.setText("small크기가 선택되었습니다");
    		}
    		if(e.getSource()==medium) {
    			text.setText("medium크기가 선택되었습니다");
    		}
    		if(e.getSource()==large) {
    			text.setText("large크기가 선택되었습니다");
    		}
    	}
    
    	public static void main(String[] args) {
    		
    		new RadioButtonFrame();
    	}
    }

     

     

    4. 텍스트 필드

     

    //텍스트필드 이벤트
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class TextFieldFrame extends JFrame{
    
    	private JButton button;
    	private JTextField text,result;
    	
    	public TextFieldFrame() {
    		setSize(300,130);
    		setTitle("제곱 게산하기");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		ButtonListener listener = new ButtonListener(); //밑에서 구현해서 불러옴
            
    		JPanel panel = new JPanel(); //패널 생성
    		panel.add(new JLabel("숫자 입력 : ")); //패널에 레이블 생성하여 삽입
    		
    		text = new JTextField(15); //텍스트필드 생성
    		text.addActionListener(listener); //텍스트 필드에 권한 부여
    		panel.add(text); //패널에 삽입
    		
    		panel.add(new JLabel("제곱한 값 : "));
    		
    		result = new JTextField(15);
    		result.setEditable(false); //result 텍스트 필드는 수정할 수 없게 함
    		panel.add(result); //패널에 삽입
    		
    		button = new JButton("OK"); //버튼 생성
    		button.addActionListener(listener); //버튼에 이벤트 권한 부여
    		panel.add(button); //패널에 삽입
            
    		add(panel); //프레임에 패널 삽입
    		setVisible(true);
    	}
    	
    	private class ButtonListener implements ActionListener{
    
    		@Override
    		public void actionPerformed(ActionEvent e) {
    			
    			if(e.getSource()==button||e.getSource()==text) { //버튼을 누르거나 엔터키를 치면 발생
    				String name=text.getText();
    				int value = Integer.parseInt(name); //문자열을 정수형으로 받아옴
    				result.setText(""+value*value); //제곱값
    				
    				text.requestFocus(); //커서.키보드에 입력한 것을 계속 처리해주기 위해 모니터링해주기 위한 것
    			}
    		}
    	}
        
    	public static void main(String[] args) {
    		
    		new TextFieldFrame();
    	}
    }

     

    5. Text Area

     

    //택스트 에어리어
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class TestAreaFrame extends JFrame implements ActionListener{
    	
    	protected JTextField textField;
    	protected JTextArea textArea;
    	
    	public TestAreaFrame() { //생성자
    		setTitle("Text Area Test");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		textField = new JTextField(30);
    		textField.addActionListener(this); //텍스트 필드에 권한 부여
    		
    		textArea = new JTextArea(10,30);
    		textArea.setEditable(false); //수정 불가능하게 설정
    		
    		add(textField,BorderLayout.NORTH); //프레임에 텍스트필드 삽입
    		add(textArea,BorderLayout.CENTER); //프레임에 텍스트에어리어 삽입
    		
    		pack();
    		setVisible(true);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    	
    		String text =textField.getText(); //텍스트필드의 문자열을 받아옴
    		textArea.append(text+"\n"); //텍스트+줄바꿈까지 확장해줌
    		textField.selectAll(); //작성한 문자열을전부 선택하게 하여 다시 쓸때 처음부터 다시 쓰이도록 한다.
    		textArea.setCaretPosition(textArea.getDocument().getLength());
    		//위치를 지정해줘서 가장 밑에 텍스트가 들어올 수 있게 함
    	}
        
    	public static void main(String args[]) {
    		new TestAreaFrame();
    	}
    }

     

    6. 스크롤

     

    //택스트 에어리어
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class TestAreaFrame extends JFrame implements ActionListener{
    	
    	protected JTextField textField;
    	protected JTextArea textArea;
    	
    	public TestAreaFrame() { //생성자
    		setTitle("Text Area Test");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		textField = new JTextField(30);
    		textField.addActionListener(this); //텍스트 필드에 권한 부여
    		
    		textArea = new JTextArea(10,30);
    		JScrollPane scrollpane=new JScrollPane(textArea); //스크롤 객체 생성
    		add(scrollpane,BorderLayout.CENTER); //스크롤 프레임에 삽입
    		textArea.setEditable(false); //수정 불가능하게 설정
    		
    		add(textField,BorderLayout.NORTH); //프레임에 텍스트필드 삽입
    		
    		pack();
    		setVisible(true);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    	
    		String text =textField.getText(); //텍스트필드의 문자열을 받아옴
    		textArea.append(text+"\n"); //텍스트+줄바꿈까지 확장해줌
    		textField.selectAll(); //작성한 문자열을전부 선택하게 하여 다시 쓸때 처음부터 다시 쓰이도록 한다.
    		textArea.setCaretPosition(textArea.getDocument().getLength());
    		//위치를 지정해줘서 가장 밑에 텍스트가 들어올 수 있게 함
    	}
        
    	public static void main(String args[]) {
    		new TestAreaFrame();
    	}
    }

     

    스크롤이 생김

     

    7. 콤보 박스 

     

    여러 항목 중 하나를 선택하는 것

    //콤보 박스
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ImageIcon;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class ComboBoxFrame extends JFrame implements ActionListener {
    		
    	JLabel label;
    	
    	public ComboBoxFrame() { //생성자
    		setTitle("콤보 박스");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setSize(300,200);
    		
    		String[] animals = {"dog","lion","tiger"}; //문자열 배열
            
    		JComboBox animalList = new JComboBox(animals); //콤보 박스 객체 생성
    		animalList.setSelectedIndex(0); //처음 값은 가장 첫 원소의 값
    		animalList.addActionListener(this); //콤보 박스에 이벤트 권한 부여
    		
    		label = new JLabel();
    		label.setHorizontalAlignment(JLabel.CENTER);
    		changePicture(animals[animalList.getSelectedIndex()]); //밑에서 구현함
            
    		add(animalList,BorderLayout.PAGE_START); //콤보 박스 프레임에 삽입
    		add(label,BorderLayout.PAGE_END); //레이블 프레임에 삽입
    		setVisible(true);
    	}
    	
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		
    		JComboBox cb=(JComboBox) e.getSource(); //이벤트가 일어난 근원을 콤보박스 형으로 바꾸어 저장
    		String name = (String)cb.getSelectedItem();//체크박스에서 고른 값을 문자열로 형 변환
    		changePicture(name); //밑에서 구현
    	}
    	
    	protected void changePicture(String name) {
    		ImageIcon icon=new ImageIcon(name+".gif"); //해당 이미지 찾아 아이콘에 저장
    		label.setIcon(icon); //레이블을 아이콘으로 
    		if(icon!=null) { //이미지가 있으면
    			label.setText(null); //텍스트는 공백
    		} 
    		else { //이미지가 없으면
    			label.setText("이미지가 발견되지 않았습니다."); //출력
    		}
    	}
        
    	public static void main(String[] args) {
    		
    		ComboBoxFrame frame=new ComboBoxFrame();
    	}
    }

     

    8. 슬라이더

     

    특정한 범위 안에서 하나의 값을 선택할 수 있는 컴포넌트

    //슬라이더
    import java.awt.Component;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSlider;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    public class SliderFrame extends JFrame implements ChangeListener {
    	static final int INIT_VALUE=15; //초기값을 저장해주기 위한 변수
    	private JButton buttonOK;
    	private JSlider slider;
    	private JButton button;
    	
    	public SliderFrame() {
    		
    		JPanel panel;
    		setTitle("슬라이더 테스트");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		panel = new JPanel();
    		JLabel label=new JLabel("슬라이더를 움직여 보세여",JLabel.CENTER);
    		label.setAlignmentX(Component.CENTER_ALIGNMENT); //텍스트의 정렬 방법 메소드
    		panel.add(label); //패널에 레이블 삽입
    		
    		slider = new JSlider(0,30,INIT_VALUE); //슬라이더 범위 0~30, 초기값은 INIT_VALUE
    		slider.setMajorTickSpacing(10); //큰 눈금의 간격
    		slider.setMinorTickSpacing(1); //작은 눈금 간격
    		slider.setPaintTicks(true); //틱 보이게 하기
    		slider.setPaintLabels(true); //레이블 보이게 하기
    		slider.addChangeListener(this); //이벤트 권한 부여
    		panel.add(slider); //패널에 슬라이더 삽입
    		
    		button = new JButton("");
    		ImageIcon icon = new ImageIcon("dog.gif");
    		button.setIcon(icon);
    		button.setSize(INIT_VALUE*10,INIT_VALUE*10);
    		panel.add(button);
            
    		add(panel); //프레임에 패널 삽입
    		setSize(300,300);
    		setVisible(true);
    	}
    	
    	@Override
    	public void stateChanged(ChangeEvent e) {
    		
    		JSlider source =(JSlider) e.getSource(); //이벤트가 발생한 근원
    		if(!source.getValueIsAdjusting()) { //조정 중에는 반영말라는 코드
    			int value=(int)source.getValue(); //조정 값을 정수로 전환
    			button.setSize(value*10, value*10);
    		}
    	}
        
    	public static void main(String[] args) {
    	
    		new SliderFrame();
    	}
    }

     

    조정 후

     

    9. 화면 캡쳐

     

    //화면 캡쳐
    
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.image.BufferedImage;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class Capture {
    	public static void main(String[] args) {
    	
    		JFrame capture =new JFrame();
    		capture.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		Dimension d;
    		Rectangle rect=new Rectangle(500,500);
    		capture.setSize(d=new Dimension(500,500)); //Dimension으로 캡쳐 사이즈 지정
    		
    		try {
    			Robot robot =new Robot(); //화면 캡쳐에 필요한 클래스
    			final BufferedImage image = robot.createScreenCapture(rect); //화면 캡쳐하여 이미지에 저장
    			image.flush(); //이미지 출력하고 버림
    			JPanel panel = new JPanel() {
    				public void paintComponent (Graphics g) {
    					g.drawImage(image, 0, 0, d.width, d.height, this);			
    				}
    			};
    			panel.setOpaque(false);
    			panel.prepareImage(image, panel); //이미지 준비
    			panel.repaint();
    			capture.getContentPane().add(panel);
    			
    		
    	}catch (Exception e) { //오류 발생할 경우
    		e.printStackTrace(); //추적
    	}
    		capture.setVisible(true); //캡쳐한 화면을 보여줌
    	}
    }

    캡쳐된 화면

     

    10. 파일 선택기

     

    //파일 선택기
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    
    public class FileChooser extends  JFrame implements ActionListener{
    	JButton openButton,saveButton;
    	JFileChooser fc;
    	
    	public FileChooser() {
    		setTitle("파일 선택기 테스트");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setSize(300,200);
    		
    		fc=new JFileChooser();
    		
    		JLabel label = new JLabel("파일 선태기 컴포넌트 테스트입니다.");
    		openButton=new JButton("파일 오픈");
    		openButton.addActionListener(this); //이벤트 권한 부여
    		
    		saveButton=new JButton("파일 저장");
    		saveButton.addActionListener(this); //이벤트 권한 부여
    		
    		JPanel panel=new JPanel();
    		panel.add(label);
    		panel.add(openButton);
    		panel.add(saveButton);
    		add(panel);
    		setVisible(true);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    	
    		if(e.getSource()==openButton) { //이벤트 발생 근원이 open_button이면
    			int returnVal=fc.showOpenDialog(this);//다이얼로그를 보여줌
    			if(returnVal==JFileChooser.APPROVE_OPTION) { //선택된 것을 불러들인다
    				File file=fc.getSelectedFile(); //선택한 파일을 반환하여 저장
    			}
    			else {}
    		}
    		
    		else if(e.getSource()==saveButton) { //이벤트 발생 근원이 save_button이면
    			int returnVal=fc.showSaveDialog(this); //다이얼로그를 보여줌
    			if(returnVal==JFileChooser.APPROVE_OPTION) {
    				File file=fc.getSelectedFile();
    			}
    			else {}
    		}
    	}
    
    	public static void main(String[] args) {
    		
    		new FileChooser();
    	}
    }

    open_button 눌렀을 경우
    save_button 눌렀을 경우

     

    'JAVA' 카테고리의 다른 글

    [12회차-①] JAVA (제네릭-②)  (0) 2021.04.08
    [11회차-②] JAVA (제네릭-①)  (0) 2021.04.06
    [10회차] JAVA (그래픽)  (0) 2021.04.06
    [9회차-②] JAVA (이벤트)  (0) 2021.04.02
    [9회차-①] JAVA (인터페이스-② 다형성)  (0) 2021.04.02
Designed by Tistory.