2012-03-18 2 views
1

저는 Java와 Swing을 처음 접했고 Windowbuilder를 사용하여 몇 가지 GUI 아이디어를 가지고 놀았지만 시도 할 때 문제가 발생했습니다. Jlabel의 텍스트를 설정합니다. 이 초기화 내에서 내가 pathLabel.setText를 사용하는 경우Java Swing - 다른 방법에서 Jlabel 텍스트 설정

private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 570, 393); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JLabel pathLabel = new JLabel("New label"); 
    pathLabel.setBounds(61, 296, 414, 15); 
    frame.getContentPane().add(pathLabel);} 

하는 ("여기에 텍스트를 입력") :

Windowbuilder 지금처럼 초기화() 메소드에 pathLabel라는 JLabel의 인스턴스를 생성 자동으로있다() 메서드를 사용하면 잘 작동하지만 완전히 다른 방법으로 텍스트를 설정할 수 있습니까? 내가 그것을 언급하게하지는 않는다.

Visual Studio에서 C#으로이 문제가 발생하지 않았으며 내가 선택한 모든 방법으로 레이블 텍스트를 설정할 수있었습니다. 내가 뭘 놓치고 있니?

나는 이것이 의미가 있기를 바랍니다. 나는 어떤 도움을 주셔서 감사합니다. 감사.

당신은 주변 클래스 pathLabel에 대한 필드를 만들 수 있습니다
+3

스윙 코드를 작성하기 위해 코드 생성기를 사용하지 않는 또 다른 이유. 이 코드를 직접 작성하는 방법을 배우려면 Swing 튜토리얼을 살펴보십시오. –

+0

'setBounds (..)'안돼! 레이아웃 (패딩 포함) 및 테두리 사용 방법 알아보기 –

+2

* "Visual Studio에서 C#으로이 문제가 발생하지 않았습니다."* 그런 식으로 글을 쓰면 사람들이 대답하도록 장려하는 좋은 방법이 아닙니다. 서로 다른 언어는 서로 다른 강점 약점 및 용도가 있습니다. Java는 구성 요소를 안정적으로 크기 조정하고 정렬하기 위해 레이아웃이 필요한 x-plat 언어입니다. 레이아웃을 사용하면 알려진/고정 위치로 구성 요소를 끌어다 놓는 것만 큼 간단하지 않습니다. –

답변

2

당신은 모든 메소드에 걸쳐 인스턴스 클래스의 변수 및 액세스 그것으로 pathLabel를 넣을 수 있습니다 클래스.

class GUIClass extends JFrame{ 
JLabel pathLabel; 
private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 570, 393); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    pathLabel = new JLabel("New label"); 
    pathLabel.setBounds(61, 296, 414, 15); 
    frame.getContentPane().add(pathLabel); 
} 
void func(){ 
    pathLabel.setText("enter text here"); 
} 
+0

우수! 나는 그것을 지금 얻는다, 고마워한다. – Bagshot

2

모든 클래스 메소드는 액세스 할 수 있도록 :

class YourClass { 
    private JLabel pathLabel; 
    private void initialize() { 
     ... 
     // Note that there is no declaration for pathLabel inside initialize 
     // since it was already declared above, and the above 
     // declaration is a reference shared by all class methods 
     pathLabel = new JLabel("New label"); 
     ...} 
}