Java
-
JavaFX - CustomPopUpJava 2018. 2. 14. 11:09
package CustomPopUp; import javafx.application.Application;import javafx.fxml.FXMLLoader;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { FXMLLoader loader = new FXMLLoader(getClass().getResource("Custom.fxml")); Parent root = loader.load(); Scene scene = new Scene(root,..
-
JavaFX - FXML - Scene BuilderJava 2018. 2. 8. 15:18
// Scene Builder 설치 후// 이클립스 JavaFx 설정에서 Scene Builder 경로 설정// Scene Builder로 UI구성 , 저장하면 자동으로 FXML에 자동 코드 완성 기능// FXML이 호출되면 기본 메서드가 한번 실행된다// fx:id와 변수명은 일치해야 한다.// stage에서 scene을 꼭 실행해야 뜬다.// Scene Builder에서 저장을 해야만 자동 완성 기능이 된다. package App; import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.scene.layout.BorderPa..
-
Java - JavaFXJava 2018. 2. 8. 14:28
JavaFX // Control을 Layout에 넣고 Scene을 Stage로 보여준다 package application; import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.Scene;import javafx.scene.layout.BorderPane; public class Main extends Application { @Override public void start(Stage primaryStage) { // 컨트롤러 -> 레이아웃 -> 씬으로 촬영 -> 스테이지에서 상영 try { // 컨트롤러는 아직 없음 // 빈 판자 레이아웃 BorderPane root = new BorderPane(); ..
-
Java - LambdaJava 2018. 2. 7. 12:38
// 일반적인 익명 객체 실행 public class Main { public static void main(String[] args) { // 일반적인 익명 객체 실행 Runnable task1 = new Runnable() { @Override public void run() { for(int i=1;i 반환값이 있어야 스레드를 낚아챌수 있다. } } // 람다 익명 객체 실행 public class Main { public static void main(String[] args) { // 람다식 익명 객체 // 무조건 1개의 인터페이스, 1개의 메서드만 구현 가능하다. Runnable task1 = () -> { for(int i=1;i 반환값이 있어야 스레드를 낚아챌수 있다. } } public ..
-
Java - Webserver HttpJava 2018. 2. 7. 11:07
import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; public class WebServer { public static void main(String[] args) throws Exception { ExecutorService pool = Executors.newFixedThreadPool(4); //1.서버소켓 생성 ServerSocket server = new ServerSocket(8085); while(true) { System.out.println("요청 대기..
-
Java - Network - File I/OJava 2018. 2. 7. 10:46
// Network를 통한 File I/O는// Socket을 통해서 주고 받는다 import java.io.BufferedInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.net.Socket; public class SenderMain { public static void main(String[] args) throws Exception { // 1. 경로 지정 String path = "D:/io/bang.gif"; File file = new File(path); // 2. 스트림 준비 FileInputStream fis = new FileInputStream..
-
Java - UDPJava 2018. 2. 6. 14:53
// UDP는 비연결 지향 프로토콜// 파일 전송 같은 경우 깨져서 들어옴// 이어 오기 X, 속도가 중요하다 import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress; public class Sender { public static void main(String[] args) { // UDP를 사용하려면 DataGram 객체를 사용 // 1. DataGramSocket 생성 // 2. 보낼 내용 준비 // 3. 보낼 내용을 DataGramPacket에 담는다. // 4. 패킷을 전송 // 5. 자원 정리(close) try (DatagramSocket socket = new Datagram..
-
Java - Network, MultiChatJava 2018. 2. 6. 10:29
import java.io.IOException;import java.net.Socket; public class MultiClient { public static void main(String[] args) throws IOException { Socket socket = null; // 1. 소켓 생성 + 2. 연결 요청 try { socket = new Socket("127.0.0.1", 9000); // 3. 할일 하기 + 스레드 생성 및 실행 System.out.println("연결 수락"); ClientSender sender = new ClientSender(socket); ClientReceiver receiver = new ClientReceiver(socket); sender.start..