FileChooser (ImageChooser가되는 JLabel과 결합 된) 및 JTextArea (JScrollPane 내부)를 포함하는 GUI Java 프로젝트를 작성 중입니다. 이 두 구성 요소는 모두 JPanel 내부에 있습니다.Java 응용 프로그램을 빌드 한 후 일부 GUI 구성 요소가 제대로 작동하지 않지만 IDE 테스트 중에는 문제가 없습니다. 왜?
을하지만 유물을 구축하고, 다음 이미지를 .jar 파일을 만드는 경우의 JLabel이 아닌 내부 : 나는 인 IntelliJ 아이디어의 내부에 그것을 실행 적
은 (버전 2017년 2월 4일) 모든 것이 잘 작동하는 경우 (최소 값이 200으로 설정되어 있지만) 초기화 JTextArea에의 크기 (높이)는 최소가된다 :
IU when executed from .jar file
내가 이미지 아이콘으로 인해 상대 경로 I로 초기화 될 수 없다고 생각/주요 자원 같은 상대 경로와
...
imagePath = "src/main/resources/" + item.getImageName();
//item.getImageName() returns a proper image name, tested with
//System.out.println() and there is a proper image in that folder.
ImageIcon img = new ImageIcon(imagePath);
img = ImageManager.resize(img);
...
//Resize function in ImageManager class
public static ImageIcon resize(ImageIcon imageIcon, int size){
return resize(imageIcon, size, size);
}
public static ImageIcon resize(ImageIcon icon){
return resize(icon, defaultSize);
}
그러나, 나는 해봤 옵션을 /과/주/자원 /하지만 그들 중 누구도 모두 IDE와의 .jar 실행 파일에 일하지 : 제공합니다.
경로에 문제가 있습니까? 그렇다면 JTextArea의 크기에 어떤 영향을 미칩니 까?
P.
JTextArea의 크기는 JLabel에 이미지가있는 경우 정상이됩니다.
정말 당신의 아카이브에'src'를 포함하면 안됩니다. 이것은 소스 코드를 포함 할 것입니다 - IntelliJ를 사용하지 않으므로 잘못 될 수 있습니다. 그러나 코드에서'src'를 절대 참조하면 안됩니다. – MadProgrammer
@MadProgrammer That 's 권리. 아카이브에서 리소스가 포함되었는지 확인하면됩니다. IntelliJ IDEA는 아티팩트 설정을 지정할 때 기본적으로이 작업을 수행합니다. – Thibstars