반응형

java spring 개발시 사용하는 gradle 이란?

 

정의 : 그루비(Groovy)를 기반으로 한 빌드 도구

 

XML 기반으로 빌드 스크립트를 사용하는 MAVEN 과 달리 DSL(Domain Specific Language)를 사용한다.

 

설치 방법 : https://gradle.org/install/

 

Gradle | Installation

Install the Gradle build tool on Linux, macOS or Windows, either manually or using a package manager like SDKMAN! or Homebrew.

gradle.org

Gradle 설치 전 JDK 버전이 8이상 확인!

 

gradle init 으로 샘플 프로젝트 생성

위 명령어 실행하면 해당 폴더에 아래와 같은 파일 생성

각 파일별 용도 기입 예정...

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JTable column size 내용길이에 맞춰 조절하기  (0) 2016.01.20
Titleborder 색 변경  (0) 2015.12.27
[팁] JarBundler 이용법.  (0) 2015.12.08
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
반응형

자바 JTable을 사용하다보면 안에 있는 자료길이가 길어 셀에서 ...으로 먹히는 경우가 있는데 최대한 그런 경우가 발생하지 않게 하기 위해 하는 함수를 소개한다.


public void resizeColumnWidth(JTable table) {
    final TableColumnModel columnModel = table.getColumnModel();
    for (int column = 0; column < table.getColumnCount(); column++) {
        int width = 50; // Min width
        for (int row = 0; row < table.getRowCount(); row++) {
            TableCellRenderer renderer = table.getCellRenderer(row, column);
            Component comp = table.prepareRenderer(renderer, row, column);
            width = Math.max(comp.getPreferredSize().width +1 , width);
        }
        columnModel.getColumn(column).setPreferredWidth(width);
    }
}


위 소스를 사용하면 자동으로 내용 길이에 맞춰 JTable column 넓이를 조절해 준다.

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

Gradle  (0) 2023.09.04
Titleborder 색 변경  (0) 2015.12.27
[팁] JarBundler 이용법.  (0) 2015.12.08
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
반응형

Java에 border라는 경계선 또는 일부 구역을 감싸는 함수가 있다.



위 사진과 같이 각 textfield와 textpane이 어떤 기능을 지원해주는지 표시하기 애매할때 저렇게 사용하고 있다.

TitleBorder의 색을 정하려고 TitleBorder method를 찾아봤는데 setTitleColor()라는 titleborder의 제목 색만 바꿔주는 함수만 있고 따로 선의 색을 바꿔주는 함수를 찾지 못하였다.

선의 색을 바꿔주기 위해서는 titleborder의 method중 setBorder()이라는 함수로 Border를 새로 정해주면서 색도 같이 바꿔줄 수 있다.


TitledBorder wikiborder,preuseborder;

wikiborder = BorderFactory.createTitledBorder("wiki 검색");

wikiborder.setBorder(BorderFactory.createLineBorder(Color.black)); //wikiborder에 검은색 LineBorder를 설정

preuseborder = BorderFactory.createTitledBorder("용례");

preuseborder.setBorder(BorderFactory.createLineBorder(Color.black)); //preuseborder에 검은색 LineBorder를 설정


위 코드로 TitleBorder의 라인색을 바꿀수 있게 되었다.

추가적으로 LineBorder외 다른 Border로 설정하여 원하는 Border를 사용할 수 있다.



반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

Gradle  (0) 2023.09.04
JTable column size 내용길이에 맞춰 조절하기  (0) 2016.01.20
[팁] JarBundler 이용법.  (0) 2015.12.08
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
반응형


JarBundler-.2.2.zip

JarBundler란?

윈도우에서 jar파일을 exe파일로 만들어주는 프로그램이 있듯이 Mac에서도 jar파일을 app파일로 만들어주는 프로그램이다.

Bundler를 사용하려면 apache ant를 먼저 설치해 줘야한다.




Jar Bundler 실행 화면

Save output file as -> 출력물 경로 설정

jar files -> jar파일 선택

Main class -> 소스의 메인이 있는 java 파일의 이름을 사용 ex)test.java 파일에 main함수가 있으면 test 입력

icon ->applicaiton 이미지 (* 이미지는 icns형식이여야 한다)

Version String -> 현재 프로그램 버전

위 사항을 다 입력후 Bundle을 클릭하면 Save output file as로 지정된 경로에 app파일이 생성된 것을 알 수 있다.


반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JTable column size 내용길이에 맞춰 조절하기  (0) 2016.01.20
Titleborder 색 변경  (0) 2015.12.27
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
Java 폴더안에 내용 모두 읽기  (4) 2015.12.03
반응형

자바 프로그램을 만들때 Mac에서 .app으로 jar 파일을 bundle하는 경우가 있다.

jar파일을 application으로 번들하면 파일들의 위치를 잡을때 매우 곤란한 경우가 발생하였다.

그이유는 application으로 실행하였을때 파일 경로를 System.getProperty("user.dir")로 받아오는데 이경로가 application경로가 아닌 /User/계정으로 잡히기 때문이다.

 - com.apple.eio.FileManager.getPathToApplicationBundle() 이 함수를 이용하면 application의 위치를 찾아준다.

위 함수로 경로를 확인하면

/User/계정/Desktop/My.app

이라는 결과를 볼 수 있다.

이제 app 위치를 찾았으니 com.apple.eio.FileManager.getPathToApplicationBundle()+"/Contents/Java/"를 더해줘서 app파일 내 Java폴더에 

DB나 textfile을 넣어두면 application만 들고 있으면 어디서든 실행이 가능한 application이 된다.

CommentDB = DriverManager.getConnection("jdbc:sqlite:"+com.apple.eio.FileManager.getPathToApplicationBundle()+"/Contents/Java/resources/DB/commentDB.db");

위 코드는 내가 사용하는 DB 위치를 얻는 방법이다.

반응형
반응형

JAVA에는 L&F(Look & Feel)이라는 것을 이용하여 GUI의 모양을 결정할 수 있다.

L&F를 사용하여 맥에서 window에서 실행되는 JAVA GUI처럼 MAC에서 실행되는 GUI를 바꿀 수 있다.


아래와 같은 코드를 프로그램에 넣으면 MAC에서 실행되는 자바 SWING 프로그램의 GUI를 windows 환경처럼 바꿀 수 있다.

try{

UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");

}catch(Exception e){

e.printStackTrace();

}


위 사진은 MAC에서 실행한 예제이다.


위 사진은 L&F를 변경하여 MAC에서 실행한 예제이다.


내가 이 L&F를 사용하게 된 이유는 Mac에서 실행한 자바 프로그램에서 아직 원인은 모르지만 Button의 색을 바꿀때 바뀌지 않는 경우가 발생할 때가 있다.

하지만 windows에서는 같은 프로그램이지만 Button의 색이 잘 변경되어서 이 문제를 해결하기 위해 구글에서 검색하다보니 L&F라는 것을 알게되어 Button색을 바꿔줄 수 있게 되었다.


Sun's JRE에서 제공되는 L&F의 종류

Sun's JRE provides the following L&Fs:

  1. CrossPlatformLookAndFeel—this is the "Java L&F" (also called "Metal") that looks the same on all platforms. It is part of the Java API (javax.swing.plaf.metal) and is the default that will be used if you do nothing in your code to set a different L&F.

  2. SystemLookAndFeel—here, the application uses the L&F that is native to the system it is running on. The System L&F is determined at runtime, where the application asks the system to return the name of the appropriate L&F.

  3. Synth—the basis for creating your own look and feel with an XML file.

  4. Multiplexing— a way to have the UI methods delegate to a number of different look and feel implementations at the same time.

* 참고 사이트

https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

반응형
반응형

재귀 함수를 이용해 한번에 File[]에 모든 파일들을 넣는 방법도 있지만

난 좀 더 쉽게 파일을 찾아 디렉토리면 다시 폴더로 들어가고 아니면 파일을 여는 재귀함수 방법으로 구현하였다.

public static void test(File f){

File f = new File("파일(폴더) 경로");

if(f.isDirectory()){        //f가 디렉토리인지 확인

File []arrFS=f.listFiles();        //디렉토리이니까 파일 리스트를 받아온다.

for(int i = 0 ; i<arrFS.length;i++){        //파일 수 만큼 함수 다시 실행.

test(arrFS[i]);

}

}

else{

 //do somethings

}

}

이렇게 구현하면 매우 쉽게 폴더안의 내용들을 읽어 올 수 있다.

반응형
반응형

평상시에는 LayoutManager를 이용하여 UI의 위치를 잡고 사용하지만

가끔 setbounds을 이용해 UI 위치를 절대값을 사용하여 위치하는 경우가 있다.

이 함수를 사용하면 편하게 원하는 위치에 UI위치를 설정할 수 있다.

하지만 이 함수를 쓰면 위치와 크기가 고정이 되어 프로그램 크기를 조정했을때 변하지 않고 항상 그 위치에 고정되어있다.

이 상태를 해결하기위해 JAVA는 ComponentListener라는 리스너를 지원해준다.

이 리스너에서 사용할 수 있는 함수는 4가지가 있다.

void componentHidden (ComponentEvent e) 
컴퍼넌트가 불가시가 되면(자) 불려 갑니다.
void componentMoved (ComponentEvent e) 
컴퍼넌트의 위치가 바뀌면(자) 불려 갑니다.
void componentResized (ComponentEvent e) 
컴퍼넌트의 사이즈가 바뀌면(자) 불려 갑니다.
void componentShown (ComponentEvent e) 
컴퍼넌트가 가시가 되면(자) 불려 갑니다.

저 함수들 중 componentResized() 함수를 이용하여 컴포넌트 크기가 변할 때 setbounds를 다시 실행시켜주면

 setbounds를 이용한 자신만의 LayoutManager를 사용한 것과 같은 효과를 낼 수 있다.

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
Java 폴더안에 내용 모두 읽기  (4) 2015.12.03
JAVA Jtable cell not editable  (0) 2015.12.02
JAVA Jtable 자동 키입력 막기  (0) 2015.12.02
반응형

JTable 셀 자체를 아예 수정이 안되게하는 방법이 있는데 

Table.setEditable(false)를 이용하면 JTable 수정이 불가능 한 상태로 변한다.

이 함수를 사용하면 JTable 셀 선택도 불가능하게 된다.

선택은 가능하게 하면서 수정을 막는 방법은 아래와 같다.

Table.setModel(new DefaultTableModel(new Object[][][] {}, new String[] { "셀1","셀2","셀3" }){

public boolean isCellEditable(int row, int column) {

      //all cells false

      return false;

    }

});

반응형
반응형

자바에서 JTable에 단축키를 설정하여 KeyListener를 사용할 때 JTable 기본 옵션으로 키보드 특수키 외 다른 키를 입력하였을 때 수정이 바로 되는 경우가 있다.

이렇게 되면 JTable안 내용이 변경이 되기 때문에 매우 불편한 상황이 발생할 수도 있다.

그래서 JTable에 키를 입력했을때 내용수정이 안되게 하는 함수가 있다.

Table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);

이 함수를 쓰면 JTable 셀이 선택되어있을때 키를 입력해도 자동으로 입력이 되지 않고 더블클릭으로 수정이 가능하게 해야 내용수정이 가능하게 된다.

반응형

+ Recent posts