이미지를 포함하는 자바 프로그램을 변환 및 실행 파일로 패키징하는 중대한 문제가 있습니다. 이미지는 프로그램과 버튼의 배경에서 사용되었습니다. jar 파일로 변환하고자하는 프로그램을 보여주는 아래 다이어그램을 참조하십시오.이미지가 포함 된 프로그램 패키지화
이 프로그램보다시피확인을 실행합니다. 나는 사용자 정의 배경과 커스텀 버튼이없는 동일한 프로그램을 이미지를 포함하지 않는 것으로 만들었고 그것을 성공적으로 항아리에 그리고 .exe 파일로 성공적으로 패키징했습니다. 내가 같이이 일을하고있어 내 배경을 그리기에 관하여
은 다음과 같습니다
// Prepare rollover images
ImageIcon F1 = new ImageIcon("imgs/btn_f1_not_selected.jpg");
ImageIcon F1rollOver = new ImageIcon("imgs/btn_f1_selected.jpg");
// Create F1 button
final JButton btnF1 = new JButton(F1);
//btnF1.setOpaque(false);
btnF1.setContentAreaFilled(false);
btnF1.setBorder(null);
btnF1.setBorderPainted(false);
btnF1.setFocusPainted(false);
btnF1.setRolloverIcon(F1rollOver);
: 이미지 내 4 개 사용자 정의 버튼을 만드는 안부
public void paintComponent(Graphics g) {
Image img = new ImageIcon("imgs/Bgnd1.jpg").getImage();
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
g.drawImage(img, 0, 0, null);
}
, 나는 다음과 같은 일을 해요 나는 이미지를 bin 폴더에 넣으려고 시도했고 배경을 만들기 위해 위의 방법을 이미지의 선언/가져 오기와 관련하여 변경했다.
public void paintComponent(Graphics g) {
String path = "Bgnd11.jpg";
java.net.URL imgURL = getClass().getResource(path);
Image img = new ImageIcon(imgURL).getImage();
Dimension size = new Dimension(img.getWidth(observer), img.getHeight(observer));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
g.drawImage(img, 0, 0, null);
}
또한 아래에 표시된대로 내 버튼의 생성에 필요한 이미지를 가져 오는 다음 내 버튼을 전달하는 시도했지만이 작동하지 않았다.
String path = "Bgnd11.jpg";
java.net.URL imgURL = getClass().getResource(path);
Image img = new ImageIcon(imgURL).getImage();
찾는 방법 & 이미지를로드 하시겠습니까?
패키지 계층 구조 란 무엇입니까? –
'paintComponent' 안에'g.drawImage' 만합니다. 그리고 관찰자없이 getWidth/getHeight를 호출하면 비동기가 아닙니다. –
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 그러나 일반적인 조언. 'setPreferredSize (size); setMinimumSize (size); setMaximumSize (size); setSize (size); setLayout (null); g.drawImage (img, 0, 0, null);'첫 번째 4 개를'paintComponent()'메소드에서 호출하지 마십시오. 레이아웃을'null' ***로 설정하지 마십시오. *** JPanel은 ImageObserver이므로 마지막 행은 ..'g.drawImage (img, 0, 0, this);' –