2011-02-11 8 views
0

JFrames 및 JPanels를 사용할 때 성가신 문제가 있습니다. JFrame을 확장하는 클래스가 있고 생성자에는 문자열이 있습니다. 이 값을 생성자의 JPanel에도 전달하고 싶습니다. 나는 그것을 어떻게 할 지 생각지 않습니다. 이것은 내가 한 것입니다 :JFrame에서 JPanel로 값 전달

public class NewFileMaker extends JFrame{ 

private String name; 

public NewFileMaker(JPanel j, String newfilename){ 
    setTitle("New File"); 
    setResizable(false); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.add(j); 
    this.pack(); 
    this.name = newfilename; 



} 

"name"값을 전달하는 방법이 있습니까? JPanel을 확장하고 새로운 클래스와 새로운 메서드를 만들 수는 있지만 많은 다른 클래스를 다시 작성해야합니다.

추가 정보 : 나는 실제로 고통스럽지 않은 조언과 확장 된 JPanel을 사용했습니다.

NewFileMaker 클래스려면 getFilename은() 내가 원하는 이름을 가져옵니다이

new NewFileMaker(new GeneratePanel(getFileName())); 

같은 다른 클래스에서 호출된다. 실제로 해결책은 너무 간단해서 모든 사람에게 사과해야합니다. 시간을 낭비해서 죄송합니다!

+1

JPanel은이 String (name)으로 무엇을해야합니까? – Bogdan

+0

Bogdan은이 문자열로 무엇을 할 것인가에 달려 있다고 말했습니다. – maks

+0

여러 가지가 있지만 주로 제목으로 이름이 지정된 텍스트 파일을 만들고 파일 내의 여러 위치에서 이름을 사용합니다. –

답변

0

저는 최상의 솔루션은 jpanel을 확장 할 것이라고 생각합니다. 어쨌든 그렇게 할 수 없다면 jframe에 PropertyChangeListener를 추가 할 수 있습니다.

0

JPanel에는 문자열 생성자가 없으므로이를 전달할 수 없습니다.

대신 panel.setName(name)으로 전화를 시도 할 수 있습니다.

+0

나는 그것을 지금 시도하고있다. j.setName (name), 그리고 Panel this.getName() 내부에서는 null을 반환합니다. –

+0

@JJG 패널의 "내부"란 무엇입니까? 약간의 코드를 보여주세요. – Bogdan

+0

죄송합니다. 마지막 문장을 무시하십시오. 제 OP를 다시 읽어주십시오. –