Salve ragazzi, ho un piccolo problema, con un'applicazione grafica. Ho un frame con una casella di testo ed un bottone, ogni volta che premo il bottone, voglio far comparire un messaggio contenente quello che era scritto nella casella di testo. Il problema è che la casella di testo è in una classe diversa da quella dov'è l'azione del pulsante, ho provato a far ereditare la classe ButtonPanel da quella azione, per così poter usare la variabile JTextField, ma viene segnalato Exception in thread "main" java.lang.StackOverflowError. Comunque ora posto il codice nella speranza che qualcuno possa aiutarmi, grazie a chi lo farà
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class testo
{
public static void main(String[] args)
{
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ButtonFrame extends JFrame
{
public ButtonFrame()
{
setTitle("Applicazione");
setSize(400,400);
ButtonPanel panel = new ButtonPanel();
Container contentPane=getContentPane();
contentPane.add(panel);
}
}
class ButtonPanel extends JPanel
{
public ButtonPanel()
{
JButton insert = new JButton("Inserisci");
JTextField casella = new JTextField(10);
JLabel label = new JLabel("Inserire Testo");
add(label);
add(casella);
add(insert);
Azione a = new Azione();
insert.addActionListener(a);
}
}
class Azione implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command= event.getActionCommand();
String s="";
if(command.equals("Inserisci"))
{
s = casella.getText();
JOptionPane.showMessageDialog(null,"Casella testo : " +s);
}
}
}