728x90
반응형
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
public class Main {
public static Image img;
public static Canvas canvas;
public static void main(String[] args) {
final Frame frame = new Frame();
frame.setTitle("Image Display");
frame.setBounds(100,100,600,400);
frame.setLayout(new BorderLayout());
img = null;
canvas = new Canvas() {
public void paint(Graphics g) {
if(img != null)
g.drawImage(img,0,0, this);
}
};
frame.add(canvas,BorderLayout.CENTER);
Button button = new Button("파일 선택");
button.setSize(100,50);
frame.add(button,BorderLayout.SOUTH);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
// 버튼 입력 처리기
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String filename = File.separator+"tmp";
JFileChooser fc = new JFileChooser(new File(filename));
fc.showOpenDialog(frame);
File selFile = fc.getSelectedFile();
if(selFile != null) {
String fileName = selFile.toString();
System.out.println(selFile.toString());
Toolkit toolkit = frame.getToolkit();
img = toolkit.createImage(fileName);
canvas.repaint();
}
}
});
}
}
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[자바] 대화 상자 프로그램 포팅 : Java JWT 기반(복리 이자 계산기 만들기 2) (0) | 2023.10.24 |
---|---|
[자바] 대화 상자 프로그램 포팅 : Java JWT 기반(복리 이자 계산기 만들기 1) (0) | 2023.10.24 |
[자바] Canvas의 이해와 활용(컬러 적용하기) (0) | 2023.10.24 |
[자바] Canvas의 이해와 활용(그래픽 처리 작업) (0) | 2023.10.24 |
[자바] 컴포넌트의 배치(메모장 만들기 예제) (0) | 2023.10.24 |