아래 코드 예제에서 어떤 수정 자에게 label
이라는 변수를 지정해야합니까? 저는 Java에 익숙하지 않지만 JLabel과 같은 스윙에서 사용할 수있는 모든 클래스를 분해하여 동적으로 호출 할 수 있도록하고 싶습니다. 나는 그것을 아래에 바랐다. 하지만 궁극적으로 어딘가에있는 마스터 파일에서 모든 스윙 클래스를 선언 할 수 있기를 원하기 때문에 나는 private static JLabel label;
에 대해 확신하지 못했습니다. 감사. 내가 이해이 코드 예제에서 어떤 수정 자에게 변수를 부여해야합니까?
package base;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class CreateLabel extends JLabel {
private static final long serialVersionUID = 1L;
private static JLabel label;
public Component createLabel(JFrame frame, String text) {
label = new JLabel(text);
return frame.getContentPane().add(label);
}
}
다른 클래스에서 초기화하려는 경우 public 및 static 만 사용해도됩니다. 당신은 setter 메소드를 사용할 수 있지만 그다지 의미가 없습니다. – tommo
왜'CreateLabel'이 JLabel을 확장합니까? 당신이 빌더 패턴으로 상속을 혼동하고있는 것처럼 보입니다. – SJuan76
제 첫 질문은 * 왜 *일까요? 왜 JLabel을 확장하려고합니까? 당신은 팩토리 클래스를 만들려고 했습니까? 그러면 createlabel이 어떤 것도 확장하지 않고 final이되고 createLabel 메서드가 정적이되기를 원할 것입니다. 그리고 이상적으로 여러분은 결코 그것에 대한 참조를 가지지 않을 것입니다 ... –