I want to read a value from textfied in Java but I am not able to read it Here is my code
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.*;
public class TextField extends JDialog {
TextField() {
JFrame frm = new JFrame("SAMPLE PROGRAM");
frm.setBounds(150,150,420,400);
frm.setLayout(null);
Container content = frm.getContentPane();
content.setBackground(Color.cyan);
JTextField text = new JTextField();
text.setBounds(70,25,100,30);
JButton button1, button2;
button1 = new JButton("PROGRAMMER");
button2 = new JButton("USER");
button1.setBounds(270,25,120,50);
button2.setBounds(270,90,120,50);
button1.addActionListener(new ButtonHandler());
button2.addActionListener(new ButtonHandler());
frm.add(button1);
frm.add(button2);
frm.add(text);
frm.setVisible(true);
frm.setResizable(false);
}
public static void main(String[] args) {
new TextField();
}
class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String str = new String();
str = e.getActionCommand();
System.out.println(" " + str);
}
}
}
I tried the following methods
1.In the Class Textfield i used this method under button2.addactionlistener.It gave an error
Cannot refer to a non-final variable text inside an inner class defined in a different method
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if(text.getText().equals("joe"))
2.In the class ButtonHandler
it says that text cannot be resolved
What Method should i use to read the textfield and in which class should in read it
1) if you rename (possible conflict with with AWT API with name TextField) and remove JDialog, because it is never used
public class TextField extends JDialog { TextField(){
to
public class MyTextField { public MyTextField(){
2) and change the main method
public static void main(String[] args) {
new TextField();
}
to
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
private final JTabbedPane jtp = new JTabbedPane();
@Override
public void run() {
MyTextField textField = new MyTextField();
}
});
}
3) remove all chars >
4) add DefaultCloseOparation for JFrame, otherwise your program will stay in the memory until your PC is restarted or switched off
5) remove all un_Swing methods and use a LayoutManager