2013-05-09 2 views
1

안녕하세요, Groovy의 GUI 레이블에 이미지를 추가하는 데 문제가 있습니다. 누구든지이 일을 할 수있는 코드를 도울 수 있습니까? 나는 도처에 수색 해 왔으며 답을 찾지 못했습니다. 나는 그것을 끝내지 못하는 프로젝트를 끝내려고 노력하고있다.Groovy의 GUI에 이미지 추가

// add a text panel 
def mainPanel = { 
     sB.panel(layout : new BorderLayout(), background: java.awt.Color.LIGHT_GRAY){ 
      label(text: 'Welcome to your closet', horizontalAlignment: JLabel.CENTER, 
        constraints : BorderLayout.CENTER, icon: ImageIcon('/home/*****/Documents/ComputerScience/CS315/icons/create.png')) 
      buttonPanel() 
     } 
} 

내가 오류는 다음과 같습니다 :

label(text: 'Welcome to your closet', horizontalAlignment: JLabel.CENTER, 
        constraints : BorderLayout.CENTER, icon: imageIcon(resource: '/home/*****/Documents/ComputerScience/CS315/icons/create.png')) 
      buttonPanel() 
:

Caught: groovy.lang.MissingMethodException: No signature of method: GUI.ImageIcon() is applicable for argument types: (java.lang.String) values: [/home/*****/Documents/ComputerScience/CS315/icons/create.png] 
groovy.lang.MissingMethodException: No signature of method: GUI.ImageIcon() is applicable for argument types: (java.lang.String) values: [/home/*****/Documents/ComputerScience/CS315/icons/create.png] 
at GUI$_closure11_closure119.doCall(ClosetGUI.groovy:888) 

다음 수정을 사용하여 내 GUI 여기 을 만들 SwingBuilder을 사용하고

내가 시도 것입니다

다음 오류가 발생합니다.

Caught: java.lang.RuntimeException: Failed to create component for 'imageIcon' reason:  java.lang.RuntimeException: In imageIcon the value argument 'null' does not refer to a file or a class resource 
java.lang.RuntimeException: Failed to create component for 'imageIcon' reason:  java.lang.RuntimeException: In imageIcon the value argument 'null' does not refer to a file or a class resource 
at GUI$_closure11_closure119.doCall(ClosetGUI.groovy:888) 

아무 도움도 없을 것입니다. 감사합니다!

+0

당신이 몇 가지 코드를 게시 할 수 있습니까? GroovyFX를 사용하고 있습니까? 그네? SwingBuilder? 너 뭐 해봤 니? 무슨 오류있어? –

+0

죄송합니다. 지금 SwingBuilders를 사용하고 있으며 코드를 게시 할 예정입니다. – ola

+0

대문자 ImageIcon 대신 소문자 imageIcon을 사용해야합니다. –

답변

0

당신은 다음과 같은 방법으로 수행 할 수있는 이미지를로드, SwingBuilder를 사용하는 경우 :

imageIcon(resource:'/groovy/ui/ConsoleIcon.png') 

또는

label(icon:imageIcon('http://docs.codehaus.org/download/userResources/GROOVY/logo') 

이이 문서에 기반을 here을 발견했다.

I 시도한 다음, 나를 위해, 작동 :

import groovy.swing.SwingBuilder; 
import java.awt.FlowLayout; 


swing = new SwingBuilder(); 
gui = swing.frame(title: "Dan's Gui", size: [400, 200], defaultCloseOperation: javax.swing.WindowConstants.EXIT_ON_CLOSE) { 

    panel() { 
     myLabel = label(text: "") 
    } 
    panel(layout: new FlowLayout()) { 

     button(text: 'next', actionPerformed: { myLabel.setText("bye") }) 
     button(text: 'previous', actionPerformed: { myLabel.setText("hello") }) 
     label(icon: imageIcon(new URL('http://jworks.nl/wp-content/jworks/logo.png'))) 
    } 
} 

gui.show(); 
+0

두 번째 방법을 사용하여 여전히 오류가 발생했습니다. 내 질문에 게시했습니다 – ola

+0

업데이트 된 예제를 사용해 볼 수 있습니까? 나는 나를 위해 일한다. 내가 바꾼 점은 이미지를 가져 오기 위해 '새로운 URL()'을 추가했다는 것입니다. –

+0

업데이트 된 예제가 작동하지만 저장된 파일의 리소스를 사용하여 어떻게 변환 할 수 있습니까? 사용자가 그림으로 표시 할 파일을 선택합니다 ... – ola