스윙 GUI와 외부 클래스가 있습니다. 스윙 GUI의 생성자에서 외부 클래스의 새 개체를 인스턴스화합니다. 하지만 GUI 클래스의 다른 메소드 (예 : 액션 리스너)에서이 객체를 사용할 수 없습니다. 액션 리스너에서 직접 객체를 인스턴스화하면 외부 클래스의 모든 메소드를 사용할 수 있습니다.스윙 GUI가 생성자에서 인스턴스화 된 외부 클래스를 알지 못합니다.
다음은 코드의 관련 스 니펫입니다. 당신이 필요로하는 더 내 외부 클래스)
1 :-) 말해 경우
public class ExternalClass
{
private int a = 100;
public int getA() {
return a;
}
}
는) 내 GUI 수준의
공용 클래스 GUI의 일부는 {
javax.swing.JFrame 2를 확장
// constructor
public GUI()
{
initComponents();
ExternalClass e = new ExternalClass();
}
//...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
int u = e.getA();
// this doesn't work - the object e is not known by the method
}
//...
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new GUI().setVisible(true);
}
});