ShapeMaker

import java.awt.*;
import java.awt.geom.*;
import java.util.ArrayList;
import javax.swing.*;

public class ShapeMaker extends JFrame {

public static void main(String[] args) {
// TODO Auto-generated method stub
new ShapeMaker();
}

public ShapeMaker()
{
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new ShapeComponent());
setVisible(true);
}

private class ShapeComponent extends JComponent {
ArrayList<Shape> shapes = new ArrayList<Shape>();

public ShapeComponent() {
Shape s = new Rectangle2D.Float(10, 10, 60, 80);
shapes.add(s);

s = new RoundRectangle2D.Float(110, 10, 80, 80, 10, 10);
shapes.add(s);

s = new Ellipse2D.Float(10, 110, 80, 80);
shapes.add(s);

s = new Arc2D.Float(10, 210, 80, 80, 90, 90, Arc2D.OPEN);
shapes.add(s);

s = new Arc2D.Float(110, 210, 80, 80, 0, 180, Arc2D.CHORD);
shapes.add(s);

s = new Arc2D.Float(210, 210, 80, 80, 45, 90, Arc2D.PIE);
shapes.add(s);
}

public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.LIGHT_GRAY);
for (int i = 0; i < getSize().width; i += 10) {
g2.draw(new Line2D.Float(i, 0, i, getSize().height));
}
for (int i = 0; i < getSize().height; i += 10) {
g2.draw(new Line2D.Float(0, i, getSize().width, i));
}
g2.setColor(Color.BLACK);
for (Shape s : shapes) {
g2.draw(s);
}
}
}
}

Final Exam

기말고사

일시: 2016년 12월 15일 (목) 1:30-3:30

장소: 2공 205호

범위: 중간고사문제 포함 – 중간고사 이후 배운데까지 (수업블로그와 예제 중심으로)

KoreaMapViewer

KoreaMapViewer

1. Download JMapViewer-2.0
2. Set CLASSPATH (in system environment variables) ./;C:\JMapViewer-2.0\JMapViewer.jar;C:\JMapViewer-2.0\JMapViewer_src.jar;C:\JMapViewer-2.0\JMapViewer_Demo.jar

& compile Demo.java (src)

javac-classpath

3. or, create a Java Project (KoreaMapViewer) in Eclipse

& create a new folder (lib) & add *.jar

& Configure Build Path & Add JARs

& compile Demo.java (src)

eclipse-configure-buildpath

eclipse-add-jars

HW4

단국대학교 응용컴퓨터공학전공 JAVA프로그래밍1 (2016년 가을학기) 실습
날짜: 2016년 12월 1일

– 실습번호 : lab-04 (Due by 12/15)
– 실습제목 : collections, fileIO, package
– 실습요약 : 지진데이터 뷰어
– 준비자료 : 지진데이터 data

JSOM (OpenStreeMap for Java8)
http://svn.openstreetmap.org/applications/viewer/jmapviewer/releases/2.0/JMapViewer-2.0.zip
JMapViewer-2.0

– 실습문제
1. KoreanQuake 클래스를 작성한다.

KEarthquake

2. KoreanQuakeManager 클래스는 지진데이터의 CSV 파일 입출력을 담당한다.
+ public static ArrayList loadCSV(String filename);
+ public static void writeCSV(String path, ArrayList qList);
+ CSV 파일 입출력 (지진 데이터를 quakeList에 import & quakeList를 새로운 파일로 export)
+ 주의: file 존재여부 및 위도/경도 정보가 없는 경우의 예외처리 요망https://www.tutorialspoint.com/java/java_exceptions.htm

3. KoreanQuakeMapViewer 클래스는 JMapViewer(https://josm.openstreetmap.de/)을 사용하여 KoreanQuake 데이터를 지도에 그려준다. http://dis.dankook.ac.kr/lectures/java16/2016/12/01/koreamapviewer/

map().addMapMarker(new MapMarkerCircle( /* 내용 지정 요망 */ )); // 아래 JOSM MapMarkerCircle을 참고하여 내용 지정 요망

https://josm.openstreetmap.de/doc/org/openstreetmap/gui/jmapviewer/MapMarkerCircle.html

 

4. KoreanQuakeTableFrame 클래스는 JTable를 사용하여 KoreanQuake 데이터를 테이블로 보여준다.

+JTable 사용법 http://www.java2s.com/Code/Java/Swing-JFC/CreatingaJTableComponent.htm
+ KoreanQuakeTableModel 클래스 정의 필요http://www.java2s.com/Code/Java/Swing-JFC/extendsAbstractTableModeltocreatecustommodel.htm

5. 본인이 더 테스트해보고 싶은 Method를 추가하라. 예를 들어, 디렉토리에 여러 개의 데이터를 읽어서, 여러 가지 방법으로 정렬 및 LINQ 쿼리를 한 후 새로운 파일에 저장한다. 등등. 실행 화면과 코드를 첨부하시오.