본문 바로가기

[안드로이드] ArrayList에서 contains() 가 객체를 발견하지 못할때, equals를 Overide 하자. 문제는 무엇이였나면 Food 라는 유형의 객체를 담는 ArrayList에 a라는 객체를 추가하고 다시 내용이 같은 a라는 객체를 추가하려할때 방지하고 감지할수 있도록 하려 햇는데 기존 contains() 메소드로는 있는 객체를 항상 감지하지 못하고 똑같은 객체 a를 다시 추가하는 경우가 있어 열심히 뒤졌더니 해결책이 있었다. Food 클래스 내부에 equals(Object object) 를 Override 하여 Food 클래스 안에서 비교하고 싶은 값을 아래처럼 지정해주면 (나같은 경우에는 Food 클래스의 name 값이 같으면 같은 자료라고 보게 했다.) contains() 를 해주어도 조건에 해당하는 객체가 있으면 true 값을 리턴하여준다. @Override public boolean equals(..
[안드로이드] 인텐트로부터 전달받은 String 값을 if 문으로 검출하기 랜덤 음식점 추첨 어플을 만들면서 이전 액티비티에서 선택한 버튼에 따라 인텐트에 내용을 다르게 첨부하고, 이를 다음 액티비티에서 읽는데까지는 성공했는데 이것이 어떤 버튼에서 수행된것인지에 따라 기능을 다르게 하려고 if 문을 통해 전달받은 String을 걸러내려고 하였는데 // 전달받은 인텐트는 intent.putExtra("value", "message") 로 첨부되었다. target = intent.getStringExtra("value"); if ( inputString == target) {} 같은 일반적인 자바 if문으로 전달받은 String 값이 걸러지지가 않는 것이였다. 처음에는 자료구조에 이상이 있을까, 코드 순서에 문제가 있던걸까, 조금의 시간이 걸렸는데 운좋게 올려본 마우스 커서에 메세..
자바에서 JDBC 이용한 DB2 연결 관련해 보기 유용한 페이지 > JDBC에 대한 IBM Data Server Driver for JDBC and SQLJ 확장
[자바 예외처리] Exception() 에 메시지 설정해서 던지기 이번 과제는 try, catch, throw, throws 등을 활용한 간단한 프로그램을 만드는 것인데, Exception 을 활용하여 대충 설계를 마쳤는데 총 실행된 세개의 메소드에서 예외를 던진 메소드로부터 메세지를 얻어 출력하고 싶었는데 어떡하지 어떡하지 하다 방법을 찾았다. Exception을 의도적을 발생시키는 구문이 throw new Exception() 인데, 괄호 안에 담고싶은 메세지를 넣어두기만 하면 된다. public class Main extends Exception{ public static void main(String[] args) throws Exception {// TODO Auto-generated method stub// try문 안에서 메소드 세개를 실행한다. 예외는 t..
자바 스윙 레이아웃 끼리 정렬하기 원래 스윙을 잘 다루지 못해서 창 크기에 상관없이 고정된 크기로만 내용을 출력하게끔 시켰다가 창 크기에 상관없이 유동적으로 바뀌었으면 해서 내용을 찾던중에 안드로이드와 비슷하게 스윙의 BorderLayout 을 사용해서 구성 패널들을 창 크기에 맞게 조절해줄 수 있었다. 우선 기본 패널 X와 X에 딸린 A, B, C의 패널이 존재할때 A를 맨 위에 배치하고자 하면 X.add(A, BorderLayout.NORTH); 다음 B를 좌측에, C를 가운데부터 우측까지 두고자 하면 B.setPreferredSize( new Dimension(300, 300));X.add(B, BorderLayout.WEST); C.setPreferredSize( new Dimension(300, 300));X.add(C, Bor..
[JAVA] 자바 스윙 폰트 변경하기 오늘은 프로젝트를 만지는데 기능적인 면보다는 그냥 겉이나 좀 바꿔보자 (사실 회의때 말이 나왔던것도 그쪽이어서) 해서 버튼으로만 휑하니 나와있던 메뉴 버튼들을 드롭다운 메뉴로 바꿔주고 추가적으로 매우 구식 프로그램처럼 보이던 원인인 프로그램 폰트를 대부분 수정해주었다. 부분적으로 고치는 방법도 찾았고 전체적으로 고치는 방법도 찾았는데, 부분적으로 고치는 방법으로 JMenu와 JMenuItem 폰트와 JFileChooser 를 수정했고 전체적으로 고치는 방법으로 알림창인 JOptionPane 의 폰트를 수정해 주었다. 부분적으로는 우선 폰트를 f1 = new Font("맑은 고딕", Font.PLAIN, 13); 식으로 선언해 주었을 때 jmenu.setFont(f1); jmenuitem.setFont(f..
DB2 데이터베이스 내에 해당 스키마 존재여부를 확인하기 해결해야 했던 문제가 생성하려는 스키마가 데이터베이스에 이미 존재할때에 예외처리가 되지 않았던 점이다. 이를 해결하기 위해 우선 특정 스키마의 테이블만을 조회할 수 있어야 했다. SELECT TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA = '스키마 이름' 을 통해 특정 스키마를 가진 테이블을 출력하는 것을 확인할 수 있었고, 다음단계로 특정 스키마를 가진 테이블이 존재하지 않는것을 어떻게 값으로 전달하느냐, 였는데 쿼리문의 결과값을 저장하는 ResultSet 변수 rs 에 next() 를 통해 true false 값을 반환받음으로 이를 해결할 수 있었다. rs.next() 를 했을 때 query 결과값이 존재하면 true를, 존재하지 않으면 false 값을 반환하게 된다...
DB2 오류 SQL4499N 을 잡기 위한 끝없는 여행 공모전이니 토익이니 하다보니 바쁜중에 잡지 못하던 프로젝트를 이제 좀 다른것이 마무리좀 됐겠다, 없어져버린 DB2를 다시 컴퓨터에 구성하기 위해 애를 썼다. 기존 DB2 바로가기나 설정파일등이 마이그레이션 전의 경로들과 겹치는 것이 있어 연결에 문제가 있었던것 같다. 하도 안돼서 DB2를 완전삭제하고 다시 설치해보기도 했지만 똑같이 데이터 스튜디오에서 데이터베이스에 연결하려고 하면 SQL4499N 오류가 발생해서 미친듯이 구글링을 했다. 제발... 하는 심정으로. 이렇게 평소에 데이터베이스에 연결을 하던 대로 입력을 하면 이렇게 멋드러진 오류와 함께 쓰는사람의 발목을 잡는것이다 db2 명령도 평소만큼 말을 듣지 않아서 다른 갖가지 명령어 (db2stop force) 를 갖고와서까지 일단 db2를 중지시켜..