지식메모/JAVA

반응형




현재 프로젝트에 lib 폴더가 있고 start.exe 파일을 참조하게 하고 싶다면



File path = new  File("lib"+File.separator+"start.exe");



이렇게 해주면 된다.

그런데 프로젝트 실행할 땐 잘되는데 실행가능한 jar 파일로 export 하여 해보니 안된다..ㅠㅠ



반응형
반응형




자바 스윙에서 JTextArea 에서 스크롤바 자동으로 설정하는 방법


1
2
3
4
5
6
JTextArea area= new JTextArea();
JScrollPane scrollPane = new JScrollPane(area);  //스크롤판 추가
JPane.add(scrollPane); //화면에 추가
 
area.append(log);  // 출력로그 JTextArea 출력
area.setCaretPosition(txtLog.getDocument().getLength());  // 이 코드를 append 밑에 추가해주면 항상 아래로 스크롤 된다
cs


반응형
반응형




자바 스윙에서 JPasswordField 필드를 사용하면 암호입력시 * 별표로 표시할 수 있는데 이 가려지 값을 가져오는 방법



tf_pw = new JPasswordField();       
tf_pw.setEchoChar('*');



이런 식으로 암호 입력시 * 별표로 가려지게 한다음



 String pw = "";
  
//tf_pw 필드에서 패스워드를 얻어옴, char[] 배열에 저장
char[] secret_pw = tf_pw.getPassword(); 

//secret_pw 배열에 저장된 암호의 자릿수 만큼 for문 돌리면서 cha 에 한 글자씩 저장
     for(char cha : secret_pw){         
         Character.toString(cha);       //cha 에 저장된 값 string으로 변환
       //pw 에 저장하기, pw 에 값이 비어있으면 저장, 값이 있으면 이어서 저장하는 삼항연산자
         pw += (pw.equals("")) ? ""+cha+"" : ""+cha+"";   
     }



이렇게 저장한 후 System.out.println(pw)로 찍어보면 입력된 암호가 나타난다.



반응형
반응형


해당링크

http://dextto.tistory.com/180



핵심 키워드 \D+


문자열 배려 첫번째는 공백이므로 split[1] 값 부터 사용하기


특히 특수문자 검색할 땐 앞에 백슬래쉬 요거 \ 추가하기


ex) ""이름"" ( 에러뜸 ) ▶ "\"이름\"" ( 따옴표도 검색가능 )


반응형
반응형




파일 I/O를 이용한 텍스트 파일 생성과 읽기를 이용한 간단한 누적시간계산하기


1. 처음 시간과 끝 시간을 구한 후

-> 끝 시간 - 처음 시간 = 총 소요시간


2. 텍스트 파일 유무를 체크 한 뒤


3.파일이 없다면(처음 기록하는 시간이므로) 총 누적시간 = 총 소요시간이므로 이 시간을 totaltime.txt에 기록


4. 만약 파일이 있었다면 총 누적시간 = 이전 누적시간 + 총 소요시간이다.

-이를 다시 totaltime.txt 기록한다.(덮어 쓰게 됨)


이런 순서로 진행된다.


Time.java


import java.io.*;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Time {
	static Date dt = new Date();
	static Time timer = new Time();
	static SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd, hh:mm:ss a");
	static int playTimeCheck = 0;

	public long startTime() {
		
		long start = System.currentTimeMillis();
		return start;
	}
	 
	public long endTime() {
		long end = System.currentTimeMillis();
		return end;
	}
	
	public long playTime(long l){
		long longTime = 0;
			long end = timer.endTime();  		//끝 시간 
			longTime = ( end - l ) / 1000; 		//끝 시간 빼기 처음시간
			playTimeCheck = (int)longTime; 		// 플레이 시간 저장
			System.out.println("플레이 시간 : " + (int)(longTime / 3600) + "시간  " + (int)(longTime % 3600 / 60) + "분  " + (int)(longTime % 3600 % 60) + "초");
		return longTime;
	}
	public void totalTime(){
		
		int total = 0;
		try {
			int play = playTimeCheck; 				//아까 계산한 플레이 시간 값
			File file = new File("c:/totaltime.txt");
			if(file.isFile()){						//totaltime.txt 존재 유무 체크
				BufferedReader outReader = new BufferedReader(new FileReader("c:/totaltime.txt")); 
				String read = outReader.readLine();	//누적 시간 읽기
				total = Integer.parseInt(read);		//읽은 값 total에 저장
				total += play;						//play시간과 total 더함
				outReader.close();
				BufferedWriter out = new BufferedWriter(new FileWriter("c:/totaltime.txt"));
				out.write(Integer.toString(total));	//합산된 total 값을 기록
				out.close();
			}else{									//파일이 없다면
				BufferedWriter out = new BufferedWriter(new FileWriter("c:/totaltime.txt"));
				total = play;						//처음에는 play시간이 곧 누적시간이므로 total에 play시간 대입
				out.write(Integer.toString(total));	//파일에 기록
				out.close();
			}
			
			System.out.println("누적 플레이 시간 : " + ( total / 3600) + "시간  " + (total % 3600 / 60) + "분  " + (total % 3600 % 60) + "초");
			
						
		} catch (IOException e) {
			System.err.println(e); // 에러가 있다면 메시지 출력
			System.exit(1);
		}
	}
	
}


이를 응용하여 예를 들면

public class TimeTest {

	public Time time = new Time();  //Time.java 객체선언
	long startTime = 0;
	long endTime = 0;
	
	public void setUpGame() {
		
		startTime = time.startTime();  //시작과 동시에 시작시간 구함
	
	}

	

	private void startPlaying() {
	
		finishGame();
	}

	

	private void finishGame() {
		exitGame();					//끝날 때 시간 구함
	}
	
	private void exitGame() {
		System.out.println("게임 종료");
		time.totalTime();			//누적시간 계산 후 출력
			
		}
			

	public static void main(String[] args) {
		DotComBust game = new DotComBust();
		game.setUpGame();
		game.startPlaying();
	}
}





대강 이런 식으로 사용가능하다..





반응형

'지식메모 > JAVA' 카테고리의 다른 글

JAVA JPasswordField 암호 값 가져오기  (0) 2015.09.20
문자열에서 숫자만 추출하기  (0) 2015.09.02
숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
반응형




가격 입력할 때 천단위 마다 콤마를 넣을 수 있는 방법



String money="999999999"
long value = Long.parseLong(money);
DecimalFormat format = new DecimalFormat("###,###");//콤마
format.format(value);
String result_int = format.format(value);



이 코드를 추가해주면 천 단위마다 콤마가 자동으로 찍힌다.


안드로이드에서 에디트 텍스트에서 숫자를 입력 받아


텍스트 뷰에 result_int 값을 출력시켜 사용하였다.

반응형

Json의 이해

2013. 11. 5. 11:30
반응형

 

만들고자 하는 구조는

{

  "j1":{

        "j2":{

"arr1":[{"j3":"a"},{"j4":"b"}]

              }

        }

}

 

이런 유형의 구조이다. 그렇다면 필요한 코드는

ObjectNode json = json.newObject();

ObjectNode j1 = json.newObject();

ObjectNode j2 = json.newObject();

ObjectNode arr1 = json.newObject();

ObjectNode j3 = json.newObject();

ObjectNode j4 = json.newObject();

ArrayNode array = null;

 

이렇게 한 뒤 구현하려면 역순으로 구현한다.

 

json객체 생성

j3.put("j3","a"); --> {"j3":"a"}

j4.put("j4","b"); --> {"j4":"b"}

 

json객체를 array라는 배열에 삽입

array.add(j3); --> [{"j3":"a"}]

array.add(j4); --> [{"j3":"a"},{"j4":"b"}]

 

array배열을 arr1이라는 key로 arr1 jsonobject에 삽입

arr1.put("arr1",array) 

--> {arr1:[{"j3":"a"},{"j4":"b"}]}

 

arr1 jsonObject를 j2라는 key로 j2 jsonObject에 삽입

j2.put("j2",arr1);

--> {j2:{"arr1":[{"j3":"a"},{"j4":"b"}]}}

 

j2 jsonObject를 j1라는 key로 j1 jsonObject에 삽입

j1.put("j1",j2);

--> {"j1":{"j2":{"arr1":[{"j3":"a"},{"j4":"b"}]}}}

 

이렇게 된다.

역순으로 jsonObject생성해서 배열에 넣고,

그 배열을 jsonobject 생성해서 집어넣고,

그걸 또 jsonObject에 넣는 역순이다.

 

위 소스를 쉽게쓰면

 

 

 

ObjectNode json1;
ObjectNode json2;
ObjectNode json3;
arrayNode arr = null;

json3 = json.newObject();
json3.put("j3","a");
arr.add(json3);
json3 = json.newObject(); 
/*
여기서 json3은 객체 새로 생성안하면
{"j3":"a", "j4", "b"}가 되고,
객체를 새로 생성하면
{"j4":"b"}가 된다.
초기화 안하면 아래 arr.add에서 
{"j3":"a"},{"j3":"a","j4":"b"} 로 들어가게된다.
*/
json3.put("j4","b");
arr.add(json3);

json3 = json.newObject();
json3.put("arr1",arr);

json2 = json.newObject();
json2.put("j2",json3);

json1 = json.newObject();
json1.put("j1",json2);

 

 

 

이런 식이다. 간단한거 같은데 많이 헷갈린다;;

 

 

 

 

 

 

반응형
반응형

String s="ABcdeFGhIJklmNop";


s=s.toUpperCase();

//모두 대문자로 바꾸기


s=s.toLowerCase();

/모두 소문자로 바꾸기






반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
java 문자열 구분자로 자르기  (0) 2013.10.02
ObjectNode 와 JsonNode 차이?  (0) 2013.09.06
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27

+ Recent posts