JButton
과 함께 ActionListener
을 사용하여 값을 저장하는 데 문제가 있습니다. 나는 Java에 상당히 익숙하지 않으며, 프로그래밍의 클래스와 하위 클래스 방식에 100 % 자신감이 없다.JTextField에서 값을 저장할 때 Java에서 필드를 확인할 수 없습니다.
import java.ActionEvent;
import javaActionListener;
import javax.swing JButton;
import javax.swing JPanel;
import javax.swing.JTextField;
public class Trial extends JPanel implements Action Listener {
private static final long serialVersionUID = 1L;
public Trial() {
setFrame();
}
public void setFrame(){
JFrame frame = new JFrame("Trial");
JPanel panel = new JPanel();
JTextField field = new JTextField(10);
JButton button = new JButton("Enter");
button.addActionListener(this);
panel.add(field);
panel.add(button);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
new Trial();
}
@Override
public void actionPerformed(ActionEvent e) {
String s = field.getText();
System.out.prinln("Button is pressed");
}
}
필드가 actionPerformed
안에 정의되지 않은 이유는 무엇입니까? ActionEvent와 함께 놀았고, actionPerformed
함수 밖의 변수를 전달할 수없는 것 같습니다. 그러면 어떻게해야합니까? setFrame()
을 자체 수업으로 이전해야합니까?
왜 '시험'이 'JPanel'을 확장합니까? 그것을하는 것이 완전히 불필요한 것처럼 보입니다. –
코드는 원래 코드의 스 니펫 일뿐입니다. 방금 질문에 필요한 코드 줄을 가져 왔습니다. –