Text auf JTextField auslesen per Button

manniL|

Mitglied
Hallo,

ich wollte den Text, der in ein JTextField eingegeben wurde auslesen, nachdem ein Button gedrückt wurde. Danach das ganze als String speichern und weiterverwenden. Hier mein Code:

Java:
import java.awt.*;
import javax.swing.*;

	public class Tableiste {
	 
	         public static void main(String [] args){
	                JFrame fenster = new JFrame("Name...");
	                fenster.setSize(500, 500);
	                fenster.setLocationRelativeTo(null);
	                fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	 
	                JButton check1 = new JButton("Klick");
	                JTextField field1 = new JTextField(32);	                
	                
	                JTabbedPane tabLeiste = new JTabbedPane();
	                JPanel panel = new JPanel();
	                panel.add(field1);
	                panel.add(check1);
	                tabLeiste.addTab("Check Accounts here", panel);
	 
	                JPanel panel2 = new JPanel();
	                panel2.add(new JButton(""));
	                tabLeiste.addTab("About", panel2);
	 
	                fenster.add(tabLeiste);
	                fenster.setVisible(true);   
	                check1.addActionListener(new AcLis());
	                

	                }
	}
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class AcLis implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		Tableiste TL = new Tableiste();
		String username = field1.getText();

	}

}
Komischerweise erkennt er das Feld nicht. (bei field1.getText(); ist field1 rot unterstrichen.

Bitte um Hilfe 😉
 
Zuletzt bearbeitet:
Woher soll der ActionListener auch was von deinem field1 wissen. Zudem erstellst du ein Objekt Testlist in der actionPerformed.

Eine Möglichkeit wäre, wenn du dem ActionListener das field1 über gibst (im Konstruktor) und dann ausliesst.
 
Möglichkeit 1 (anonym):
Java:
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Foor
{

   public static void main (String... _)
   { 
      
      JFrame frame = new JFrame ("test");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      frame.setPreferredSize (new Dimension(500,500));
      
      frame.setLayout (new GridLayout ());
      
      final JTextField field1 = new JTextField(32);  
      frame.getContentPane ().add (field1);
      
      JButton button = new JButton ("OK");
      button.addActionListener (new ActionListener() {
         
         @Override
         public void actionPerformed (ActionEvent e)
         {
            System.out.println ("Pressed");
            System.out.println (field1.getText ());
         }
      });
      frame.getContentPane ().add (button);
      frame.pack ();
      frame.setVisible (true);
   }
}

Möglichkeit 2:
Java:
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Foor
{

   public static void main (String... _)
   { 
      
      JFrame frame = new JFrame ("test");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      frame.setPreferredSize (new Dimension(500,500));
      
      frame.setLayout (new GridLayout ());
      
      final JTextField field1 = new JTextField(32);  
      frame.getContentPane ().add (field1);
      
      JButton button = new JButton ("OK");
      button.addActionListener (new FooActionListener (field1));
      frame.getContentPane ().add (button);
      frame.pack ();
      frame.setVisible (true);
   }
   
   static class FooActionListener implements ActionListener {
      
      private JTextField field;
      
      public FooActionListener (JTextField field)
      {
         this.field = field;
      }
      
      @Override
      public void actionPerformed (ActionEvent e)
      {
         System.out.println ("Pressed");
         System.out.println (field.getText ());
      }
   }
}
 

Zurück
Oben