Search

ImageFrameTest

Programming/JAVA,JSP 2016. 2. 5. 15:20 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;

class MyFrame extends JFrame implements ActionListener {
	Image image;
	JButton button;
	JPanel panel;

	public MyFrame() {
		setSize(500, 300);
		setTitle("Image Frame Test");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		panel = new MyPanel();
		add(panel, BorderLayout.CENTER);

		button = new JButton("그림 선택 및 표시");
		button.addActionListener(this);
		add(button, BorderLayout.NORTH);

		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		String file = getFile();
		if (file != null) {
			image = Toolkit.getDefaultToolkit().getImage(file);
			image = image.getScaledInstance(500, 300, Image.SCALE_SMOOTH);
			panel.repaint();
		}
	}

	private String getFile() {
		JFileChooser fc = new JFileChooser();
		fc.setFileFilter(new ImageFilter());
		int result = fc.showOpenDialog(null);
		File file = null;
		if (result == JFileChooser.APPROVE_OPTION) {
			file = fc.getSelectedFile();
			return file.getPath();
		} else
			return null;
	}

	private class MyPanel extends JPanel {
		public void paint(Graphics g) {
			g.drawImage(image, 0, 0, this);
		}
	}

	private class ImageFilter extends javax.swing.filechooser.FileFilter {
		public boolean accept(File f) {
			if (f.isDirectory())
				return true;
			String name = f.getName();
			if (name.matches(".*((.jpg)|(.JPG)|(.gif)|(.GIF)|(.png))|(.PNG)"))
				return true;
			else
				return false;
		}

		public String getDescription() {
			return "이미지 파일 (*.jpg, *.gif, *.png)";
		}
	}
}

public class ImageFrameTest {
	public static void main(String[] args) {
		new MyFrame();
	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

Activex Event use in JavaScript  (0) 2016.04.14
JDBC Realm  (1) 2016.03.09
Java 채팅 프로그램  (0) 2016.02.04
Java 채팅 소스 예제 #1  (0) 2016.02.04
Java CardLayout Test  (0) 2016.01.26

Java 채팅 프로그램

Programming/JAVA,JSP 2016. 2. 4. 15:35 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
package com.test.aa;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	public static void main(String[] args) {
		try {
			ServerSocket ss = new ServerSocket(5555);
			Socket s;
			while (true) {

				s = ss.accept();

				System.out.println("입장 : " + s.getInetAddress());
				PerClientThread pc = new PerClientThread();
				pc.s = s;
				pc.start();

			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

package com.test.aa;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;

public class PerClientThread extends Thread {
	public Socket s;
	public static ArrayList alp
	 = new ArrayList();
		

	@Override
	public void run() {
		PrintWriter out = null;
		BufferedReader in = null;
		try {
			out = new PrintWriter(s.getOutputStream(), true);
			alp.add(out);
			in = new BufferedReader(new InputStreamReader(s.getInputStream()));

			String inputLine;

			while ((inputLine = in.readLine()) != null) {
				System.out.println(inputLine);
				for( int i = 0 ; i < alp.size() ; i++ )
				{
					try{
						alp.get(i).println(inputLine);
					}
					catch(Exception e)
					{
						
					}
					
				}
				
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client {
	static String nickName;
	public static void main(String[] args) {
		JTextField textField;
		JTextArea textArea;
		PrintWriter out;
		BufferedReader in;
		try {
			Socket s = new Socket("118.46.60.67", 5555);
			out = new PrintWriter(s.getOutputStream(), true);
			in = new BufferedReader(
					new InputStreamReader(s.getInputStream()));
						
			Scanner sc = new Scanner(System.in);
			nickName = sc.next();
			
			JFrame f = new JFrame("채팅");
			f.setSize(600, 400);
			f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
			textArea = new JTextArea();	
			textField = new JTextField(10);
			textField.addActionListener(
					new ActionListener() {
						public void actionPerformed(ActionEvent e) {
						out.println(
								nickName + " : " + 
									textField.getText());
						}
					}
			);
			f.add(textField, BorderLayout.SOUTH);
			f.add(textArea, BorderLayout.CENTER);
			f.setVisible(true);
			while(true)
			{
				textArea.append(in.readLine()+"\n");
				textField.setText("");
			}
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

JDBC Realm  (1) 2016.03.09
ImageFrameTest  (0) 2016.02.05
Java 채팅 소스 예제 #1  (0) 2016.02.04
Java CardLayout Test  (0) 2016.01.26
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26

Java 채팅 소스 예제 #1

Programming/JAVA,JSP 2016. 2. 4. 14:28 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client {
	public static void main(String[] args) {
		JTextField textField;
		JTextArea textArea;
		PrintWriter out;
		try {
			Socket s = new Socket("118.46.60.67", 5555);
			out = new PrintWriter(s.getOutputStream(), true);
			JFrame f = new JFrame("채팅");
			f.setSize(600, 400);
			f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
			textArea = new JTextArea();
			textField = new JTextField(10);
			textField.addActionListener(
					new ActionListener() {
						public void actionPerformed(ActionEvent e) {
						out.println(textField.getText());
						}
					}
			);
			f.add(textField, BorderLayout.SOUTH);
			f.add(textArea, BorderLayout.CENTER);
			f.setVisible(true);
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

ImageFrameTest  (0) 2016.02.05
Java 채팅 프로그램  (0) 2016.02.04
Java CardLayout Test  (0) 2016.01.26
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
Java Server/Client Code  (2) 2015.11.12

Java CardLayout Test

Programming/JAVA,JSP 2016. 1. 26. 14:43 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyFrame extends JFrame implements ActionListener {
	JPanel panel;
	Cards cards;

	public MyFrame() {
		setTitle("CardLayoutTest");
		setSize(400, 200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		panel = new JPanel(new GridLayout(0, 5, 10, 0));
		addButton("<<", panel);
		addButton("<", panel);
		addButton(">", panel);
		addButton(">>", panel);
		addButton("종료", panel);
		add(panel, "North");
		cards = new Cards();
		add(cards, "Center");
		setVisible(true);
	}

	void addButton(String str, Container target) {
		JButton button = new JButton(str);
		button.addActionListener(this);
		target.add(button);
	}

	private class Cards extends JPanel {
		CardLayout layout;

		public Cards() {
			layout = new CardLayout();
			setLayout(layout);
			for (int i = 1; i <= 10; i++) {
				add(new JButton("현재 카드의 번호는 " + i + "입니다"), "Center");
			}
		}
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("종료")) {
			System.exit(0);
		} else if (e.getActionCommand().equals("<<")) {
			cards.layout.first(cards);
		} else if (e.getActionCommand().equals("<")) {
			cards.layout.previous(cards);
		} else if (e.getActionCommand().equals(">")) {
			cards.layout.next(cards);
		} else if (e.getActionCommand().equals(">>")) {
			cards.layout.last(cards);
		}
	}
}

public class CardTest {
	public static void main(String args[]) {
		MyFrame f = new MyFrame();
	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

Java 채팅 프로그램  (0) 2016.02.04
Java 채팅 소스 예제 #1  (0) 2016.02.04
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
Java Server/Client Code  (2) 2015.11.12
[Spring] 한글 인코딩 설정  (0) 2015.10.29

정올 알고리즘 2247 도서관 문제

Programming/JAVA,JSP 2015. 11. 26. 10:47 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
package com.tistory.tansanc;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {

		int[] timeTable = new int[25];

		timeCheck(timeTable);

		int inputLength;
		int[][] inputData;
		Scanner sc = new Scanner(System.in);

		inputLength = sc.nextInt();
		inputData = new int[inputLength][2];

		for (int inputFor = 0; inputFor < inputLength; inputFor++) {

			inputData[inputFor][0] = sc.nextInt(); // Start Time
			inputData[inputFor][1] = sc.nextInt(); // End Time
		}
		for (int inputFor = 0; inputFor < inputLength; inputFor++) {

			for (int todayCheck = inputData[inputFor][0]; todayCheck < inputData[inputFor][1]; todayCheck++)
				timeTable[todayCheck] = 1;
		}
		

		timeCheck(timeTable);

		int maxBreak = 0;
		int maxTime = 0;
		int maxTempTime = 0;

		for (int inputFor = 0; inputFor < 25; inputFor++) {
			if( timeTable[inputFor] == 1)
			{
				maxTempTime++;
			}
			else
			{
				if ( maxTempTime > maxTime)
				{
					maxTime = maxTempTime;
				}
				maxTempTime = 0;
			}
		}
		if ( maxTempTime > maxTime)
		{
			maxTime = maxTempTime;
		}
		
		System.out.println("maxTime : " + maxTime);
		
	}

	static void timeCheck(int[] timeTable) {
		for (int i = 0; i < timeTable.length; i++)
			System.out.printf("%3d ", i);
		System.out.print("\n");
		for (int i = 0; i < timeTable.length; i++)
			System.out.printf("%3d ", timeTable[i]);
		System.out.print("\n");
		System.out.print("\n");
	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

Java 채팅 소스 예제 #1  (0) 2016.02.04
Java CardLayout Test  (0) 2016.01.26
Java Server/Client Code  (2) 2015.11.12
[Spring] 한글 인코딩 설정  (0) 2015.10.29
mysql table datetime tip  (0) 2014.10.20

Java Server/Client Code

Programming/JAVA,JSP 2015. 11. 12. 13:23 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Client.java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;


class MyFrame extends JFrame {
	public static JTextArea textArea;
	JTextField textField;
	PrintWriter out;
	
	public MyFrame() {
		textArea = new JTextArea();
		textField = new JTextField();
		add(BorderLayout.CENTER, textArea);
		add(BorderLayout.SOUTH, textField);
		textField.addActionListener(new FieldListener());
		setSize(300,200);
		setTitle("채팅프로그램 Client");
		setVisible(true);
		// GUI를 설계한다.
	}
	class FieldListener implements ActionListener
	{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			out.println(textField.getText());
			textField.setText("");
			// 메세지 보내기
		}		
	}
}

class SendThread extends Thread {
	PrintWriter out;
	public SendThread(PrintWriter out)
	{
		this.out = out;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
	}
}

class RecvThread extends Thread {
	BufferedReader in;
	public RecvThread(BufferedReader in)
	{
		this.in = in;
	}
	@Override
	public void run() {
		String temp;
		try {
			while ((temp = in.readLine()) != null) {
				
				MyFrame.textArea.setText(
						MyFrame.textArea.getText()
						+ "\n" + temp);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

class ClientModule {
	MyFrame mFrame;
	SendThread mSendThread;
	RecvThread mRecvThread;
	Socket s;

	// 서버에 패킷을 보내는 Thread
	// 서버로부터 패킷을 받는 Thread
	public ClientModule() // 준비
	{

		try {
			s = new Socket("192.168.10.151", 33333);
			PrintWriter out = new PrintWriter(s.getOutputStream(), true);
			BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
			mFrame = new MyFrame(); // GUI 객체
			mFrame.out = out;
			mSendThread = new SendThread(out);
			mRecvThread = new RecvThread(in);			
		}  catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	void start() // 시작
	{
		mSendThread.start();
		mRecvThread.start();
	}
}

public class Client {
	public static void main(String[] args) {
		ClientModule cm = new ClientModule();
		// 초기화 작업
		cm.start();
		// Thread.start();
	}
}

Server.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

class PerClientThread extends Thread {
	Socket s;
	static ArrayList socketArray = new  ArrayList();

	@Override
	public void run() {
		// TODO Auto-generated method stub

		socketArray.add(s);
		
		BufferedReader br;
		try {
			br = new BufferedReader(new InputStreamReader(s.getInputStream()));
			String temp;
			while ((temp = br.readLine()) != null) {
				System.out.print(s.getInetAddress() + " : ");
				System.out.println(temp);
				for( int i = 0 ; i < socketArray.size() ; i++)
				{
					PrintWriter os = 
							new PrintWriter
							(socketArray.get(i).getOutputStream()
									,true);
					os.print(s.getInetAddress() + " : ");
					os.println(temp);
				}
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		super.run();
	}
}

public class Test {
	public static void main(String[] args) throws Exception {

		System.out.println("Server Side");
		ServerSocket ss = new ServerSocket(33333);
		Socket s;
		while (true) {
			s = ss.accept();
			PerClientThread pct = new PerClientThread();
			pct.s = s;
			pct.start();
		}

	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

Java CardLayout Test  (0) 2016.01.26
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
[Spring] 한글 인코딩 설정  (0) 2015.10.29
mysql table datetime tip  (0) 2014.10.20
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12

[Spring] 한글 인코딩 설정

Programming/JAVA,JSP 2015. 10. 29. 01:08 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

servlet.xml 파일 수정






     
          
             
                
                   
                      text/plain;charset=utf-8
                   
                
             
          
      


'Programming > JAVA,JSP' 카테고리의 다른 글

정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
Java Server/Client Code  (2) 2015.11.12
mysql table datetime tip  (0) 2014.10.20
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12
Java Chatting Server, Client  (0) 2014.07.12

mysql table datetime tip

Programming/JAVA,JSP 2014. 10. 20. 12:54 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


인스턴스 게시판을 만들던 도중


게시판에 글을 게시한 시간과 게시글을 수정한 시간을 표기하고자 하였다.



auto_increment 옵션을 주면 id가 자동으로 증가되면서 부여되듯이


시간도 insert, update 한 시점이 자동으로 업데이트되는 기능이 있을거라 생각하여 검색했다.



아래의 sql 문을 활용하면 insert, update 시 해당 컬럼이 자동으로 업데이트 된다.



작성일 DATETIME DEFAULT CURRENT_TIMESTAMP,
수정일 DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

'Programming > JAVA,JSP' 카테고리의 다른 글

Java Server/Client Code  (2) 2015.11.12
[Spring] 한글 인코딩 설정  (0) 2015.10.29
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12
Java Chatting Server, Client  (0) 2014.07.12
JScrollPane , ScrollPane 차이점  (0) 2014.07.12

JSP, MYSQL, ECLIPSE 연동하기

Programming/JAVA,JSP 2014. 10. 12. 22:53 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://novon.tistory.com/entry/MySQL-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4%EC%99%80-%EC%97%B0%EB%8F%99-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95



'Programming > JAVA,JSP' 카테고리의 다른 글

[Spring] 한글 인코딩 설정  (0) 2015.10.29
mysql table datetime tip  (0) 2014.10.20
Java Chatting Server, Client  (0) 2014.07.12
JScrollPane , ScrollPane 차이점  (0) 2014.07.12
Java ScrollPane 활용  (0) 2014.07.12

Java Chatting Server, Client

Programming/JAVA,JSP 2014. 7. 12. 16:18 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

 

 

 

JavaChattingClient.zip

 

JavaChattingServer.zip

 

'Programming > JAVA,JSP' 카테고리의 다른 글

mysql table datetime tip  (0) 2014.10.20
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12
JScrollPane , ScrollPane 차이점  (0) 2014.07.12
Java ScrollPane 활용  (0) 2014.07.12
java  (0) 2014.07.12