JavaFX 응용 프로그램아이콘
JavaFX를 사용하여 어플리케이션 아이콘을 변경할 수 있습니까, 아니면 Swing을 사용해야 합니까?
스테이지가 「스테이지」이며, 파일이 파일 시스템에 있는 것을 전제로 합니다.
stage.getIcons().add(new Image("file:icon.png"));
아래 코멘트에 따르면, 컨테이너가 들어 있는 항아리에 싸여 있는 경우 대신 다음 방법을 사용해야 합니다.
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("icon.png")));
이거 해봤는데 잘 되네.코드는 다음과 같습니다.
stage.getIcons().add(
new Image(
<yourclassname>.class.getResourceAsStream( "icon.png" )));
icon.png은 소스 파일과 같은 폴더 아래에 있습니다.
Stack Overflow Icon 아이콘을 설정합니다.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class StackoverflowIcon extends Application {
@Override
public void start(Stage stage) {
StackPane root = new StackPane();
// set icon
stage.getIcons().add(new Image("/path/to/stackoverflow.jpg"));
stage.setTitle("Wow!! Stackoverflow Icon");
stage.setScene(new Scene(root, 300, 250));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
출력 스크렌샷
JavaFX 8용으로 업데이트됨
코드를 변경할 필요가 없습니다.아직 잘 작동하고 있어요.Java 1.8(1.8.0_45)로 테스트 및 확인.경로는 로컬 또는 리모트로 설정할 수 있습니다.둘 다 지원됩니다.
stage.getIcons().add(new Image("/path/to/javaicon.png"));
또는
stage.getIcons().add(new Image("https://example.com/javaicon.png"));
도움이 됐으면 좋겠다.감사합니다!!
fxml로 추가할 수 있습니다.스테이지 레벨
<icons>
<Image url="@../../../my_icon.png"/>
</icons>
이미지 폴더가 있고 아이콘이 저장된 경우 다음을 사용하십시오.
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/images/comparison.png")));
패키지에서 직접 사용하는 것이 바람직하지 않은 경우는, 이것을 사용해 주세요.
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("comparison.png")));
폴더 구조를 가지고 있고 그 안에 아이콘이 있는 경우
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("../images/comparison.png")));
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png")));
icon.png이 resources dir에 있고 그렇지 않으면 '/'을 입력해야 합니다.
src 디렉토리에 image.icons라는 새로운 패키지를 생성하여 .png 이미지를 이동하는 것에 대해 어떻게 생각하십니까?필요한 것은 다음과 같습니다.
Image image = new Image("/image/icons/nameOfImage.png");
primaryStage.getIcons().add(image);
이 솔루션은 저에게 완벽하게 작동하지만, 아직 정확한지 잘 모르겠습니다(처음부터).
stage.getIcons().add(new Image(ClassLoader.getSystemResourceAsStream("images/icon.png")));
이미지 폴더가 리소스 폴더에 있어야 합니다.
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png" )));
이 방법을 사용하여 크기가 다른 아이콘을 두 개 이상 추가할 수 있습니다.이미지는 같은 이미지의 크기가 서로 달라야 하며 최적의 크기가 선택됩니다. eg. 16x16, 32,32
이 코드 라인을 사용하면 프로그램에 아이콘을 쉽게 추가할 수 있습니다.
stage.getIcons().add("이미지 경로");
stage.getIcons().add(new Image("/images/logo_only.png"));
src 폴더에 이미지 폴더를 만들어 이미지를 가져오는 것이 좋습니다.
나는 이것을 응용 프로그램에 사용했다.
Image icon = new Image(getClass().getResourceAsStream("icon.png"));
window.getIcons().add(icon);
여기 창문이 무대입니다.
jar 파일을 실행하면 마이클 베리가 지정한 코드가 제목 표시줄과 태스크바에 있는 아이콘을 변경합니다.바로 가기 아이콘은 변경할 수 없습니다.
com으로 컴파일된 네이티브 프로그램을 실행하는 경우.zenjava, 프로그램 아이콘에 링크를 추가해야 합니다.
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
...
<bundleArguments>
<icon>${project.basedir}/src/main/resources/images/filename.ico</icon>
</bundleArguments>
</configuration>
</plugin>
숏컷과 태스크바에 아이콘이 추가됩니다.
실행 시 아이콘 전환:
여기에 있는 응답 외에, 처음 프로그램에 아이콘을 할당한 후에는 스테이지에 새 아이콘을 추가하는 것만으로 아이콘을 전환할 수 없다는 것을 알게 되었습니다(앱의 아이콘을 on/off 활성화/비활성화에서 전환할 필요가 있는 경우 도움이 됩니다).
런타임 중에 새 아이콘을 설정하려면 새 아이콘을 추가하기 전에 getIcons().remove(0)를 사용합니다. 여기서 0은 다음과 같이 재정의할 아이콘의 색인입니다.
//Setting icon by first time (You can do this on your start method).
stage.getIcons().add(new Image(getClass().getResourceAsStream("enabled.png")));
//Overriding app icon with a new status (This can be in another method)
stage.getIcons().remove(0);
stage.getIcons().add(new Image(getClass().getResourceAsStream("disabled.png")));
다른 메서드 또는 클래스에서 스테이지에 액세스하려면 메인 클래스에 스테이지를 위한 새로운 스태틱필드를 생성하여 앱 내 어디에서나 액세스할 수 있는 스태틱메서드에 캡슐화함으로써 start() 메서드 외부에서 액세스할 수 있습니다.
public class MainApp extends Application {
private static Stage stage;
public static Stage getStage() { return stage; }
@Override public void start(Stage primaryStage) {
stage = primaryStage
stage.getIcons().add(new Image(getClass().getResourceAsStream("enabled.png")));
}
}
public class AnotherClass {
public void setStageTitle(String newTitle) {
MainApp.getStage().setTitle(newTitle);
MainApp.getStage().getIcons().remove(0);
MainApp.getStage().getIcons().add(new Image(getClass().getResourceAsStream("disabled.png")));
}
}
만약 당신이 가지고 있다면Invalid URL or resource not found
폴더에 .
JavaFX의 제목 표시줄에 사용자 고유의 아이콘을 삽입하는 또 다른 쉬운 방법은 다음 방법을 사용하여 이미지를 프라이머리 단계에 추가하는 것입니다.
Image ico = new Image("resources/images/iconLogo.png");
stage.getIcons().add(ico);
javafx.scene.image를 Import합니다.이미지(netbeans와 같은 ide를 사용하는 경우 이 작업은 자동으로 수행되어야 합니다).
이렇게 해봤더니 작동하더라고요.
stage.getIcons().add(new Image(getClass().getResourceAsStream("../images/icon.png")));
언급URL : https://stackoverflow.com/questions/10121991/javafx-application-icon
'source' 카테고리의 다른 글
Java Import 스테이트먼트에 와일드 카드를 사용하는 것이 나쁜 이유는 무엇입니까? (0) | 2022.08.16 |
---|---|
html에서 호출할 때 가져온 Javascript 함수가 정의되지 않았습니다. (0) | 2022.08.16 |
C에서 exit()를 사용해야 합니까? (0) | 2022.08.14 |
vuex 저장소 어레이에서 개체를 업데이트하는 방법 (0) | 2022.08.14 |
"확장 T"는 허용되지만 "실장 T"는 허용되지 않는 이유는 무엇입니까? (0) | 2022.08.14 |