2009-12-14 5 views
1

GUI를 추가하고 싶은 멋진 텍스트 기반 Java 프로그램이 있습니다.그래픽을 Java의 사용자 인터페이스와 결합하십시오.

Netbeans을 사용해 본 적이 있으며 구성 요소를 제대로 가져 오는 데 너무 많은 문제가 없어야합니다.

그러나 프로그램은 인터페이스 창 내에서 이미지를 동적으로 업데이트해야하며이를 수행하는 가장 좋은 방법은 무엇인지 모르겠습니다.

인터페이스에서 이미지 (PNG, JPEG ...)를 움직이는 일반적인 방법이 있습니까? 이것에 대한 아주 기본적인 정보를 얻을 수있는 좋은 자료가 있습니까?

감사합니다.

답변

1

조금 더 많은 정보가 도움이 될 수 있습니다.

이미지를 다시 레이아웃하려면 Swing LayoutManager 클래스를 살펴보십시오. JLabel의 ImageIcon ImageIcon에 이미지를 넣을 수 있으며 레이아웃 관리자는 JPanel에서 JLabel을 배치하고 다시 배치 할 수 있습니다.

이미지를 드래그 할 수있게하려면 일반적으로 레이블이 마우스 또는 탭 이벤트를 지원하지 않으므로 JLabel을 다른 컨테이너 구성 요소에 넣는 것이 좋습니다.

Swing tutorial에서 해당 클래스를 볼 수 있습니다.

당신을 위해 더 나은 스윙 작업을 만들기위한 추가적인 프레임 워크의 많음이있다 - 또는 some listed here

, 자바 FX는 또한 당신이 돈 '하면 빠르고 쉽게이 (쓸 수있는 Java GUI를 수행하기위한 빠른 방법을 제공합니다 새로운 스크립팅 언어를 배우는 마음). 예를 들어, 애니메이션을 추가합니다 (이미지가 제자리에 스워싱).

1

자바는 그래픽 및 이미지를 그리기위한 훌륭하고 강력한 API를 가지고 있습니다. Sun의 Java 자습서 세트 2D Graphics tutorial을 살펴보십시오.

애니메이션을 원하면 timing framework이 유용 할 것입니다.

Java에서 멋지게 움직이는 GUI를 만드는 방법에 관한 좋은 책은 Chet Haase와 Romain Guy가 작성한 Filthy Rich Clients입니다.

0

버튼과 물건 위에 이미지가 날아 다니는 것을 의미합니까? 아니면 특정 지역에서만 가능합니까?

특정 지역 내에 있고 버튼 및 기타 GUI 항목을 이동할 필요가없는 경우 가장 간단한 방법은 Canvas (또는 스윙 구성 요소를 만들고 페인트 기능을 오버로드하는 것)입니다. Graphics2D API를 사용하여 물건을 그립니다. 기본 개요는 다음과 같습니다.

public class MyClass extends JComponent{ 

    Image myPicture; 
    int x, y; //location to draw the picture. 
    ... 
    public void paint(Graphics g) { 
      Graphics2D gx = (Graphics2D)g; //cast to graphics 2D 
      g.drawImage(myPicture,x,y,this); 
    } 
    ... 
} 

그런 다음 x 및 y 값을 변경하여 이미지를 이동하십시오.

+0

그래픽이 GUI 요소 중 일부와 겹치지 않습니다. 나는 모든 용어에 약간 압도되어 있으며, 일을하는 가장 좋은 방법은 무엇인지 모르겠다 ... 나는 단지 그것을 간직하고 싶다. netbeans 코드가 있지만 생성 된 코드에 paint() 메서드가 없습니다. 그냥 메서드 자체를 추가하고 그것을 업데이트하는 그래픽을 처리할까요? – Allen

+0

예, 그냥 페인트 기능을 추가하십시오.함수 서명이 "public void paint (Graphics g)"인지 확인하고 함수가 실행되어야합니다. –

관련 문제