このプログラムの目的は、別のクラスからプライベート変数jtextfieldにアクセスすることです。JTextFieldからユーザー入力を受け取るこの単純なプログラムを作成しました。あるクラスにはgetterメソッドとsetterメソッドがあり、別のクラスにはボタンとフィールドがあります。したがって、ユーザーがテキストフィールドに何かを入力したときに何かを印刷したいと思います。ただし、ボタンをクリックすると、プログラムは印刷されず、エラーが発生します。
エラー:javax.swing.JTextField [、140,62,124x20、layout = javax.swing.plaf.basic.BasicTextUI
getterメソッドとsetterメソッドを正しく初期化しましたか?
例1:
import javax.swing.*;
class Example1 {
private JTextField Name;
public Example1(){
Name = null;
}
public Example1(JTextField n){
Name = n;
}
public void setName(JTextField Name) {
this.Name = Name;
}
public JTextField getName() {
return Name;
}
}
例2:
import javax.swing.*;
import java.awt.event.*;
public class Example2
{
JFrame frame = new JFrame();
JPanel panel = new JPanel();
private JTextField Name = new JTextField();
private JButton Button = new JButton("Print");
public Example2(){
panel.setLayout(null);
Name.setBounds(140, 62, 124, 20);
Button.setBounds(320, 62, 133, 20);
panel.add(Name);
panel.add(Button);
frame.add(panel);
frame.setSize(470,310);
frame.setVisible(true);
Button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
add(Name);
}
});
}
public static void add(JTextField Name){
Example1 x = new Example1();
x.setName(Name);
JTextField a = x.getName();
System.out.println(a);
}
public static void main(String [] args){
Example2 print = new Example2();
}
}