PDA

Visualizza la versione completa : [Java] Passaggio Parametro


fraper
24-01-2005, 14:05
Salve a tutti....ho questo codice (vedi sotto)....c'è un main che chiama la classe "Frame1" che c'è postata sotto...questa classe crea un pannello e definisce tanti elementi dentro...non vi ho postato il codice per intero perchè non c'era bisogno...in sostanza, ho un bottone (nel codice "button1") che come vedete ha un .addActionListener(new Frame1......) a questo ActionListener è associato un "void button1_actionPerformed...." al quale è associata una classe "Frame1_button1_actionAdapter()"....e tutto funziona regolarmente....adesso...io mi trovo, dentro "void button1_actionPerformed..." ad avere un "String testo = textf.getText();",cioè ho un campo di testo dal quale ottengo in una stringa (testo) quello che digito....IL PROBLEMA...come faccio a passare come parametro questa String testo ad un altro actionPerformed (ad esempio) void button2_actionPerformed??? In sostanza io ho bisogno di quel String testo, in un altro metodo!Come fare?

Ho provato con "void button2_actionPerformed(ActionEvent e, String testo) {
....

ma l'editor eclipse, mi ha dato errore...naturalmente ho aggiunto la classe

class Frame1_button2_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;

Frame1_button2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button2_actionPerformed(e);
}
}

ma sicuramente c'è qualcosa che manca da aggiungere....qualcuno sa dirmi cosa?

Ringrazio tutti anticipatamente.

CODICE----------------------------------------


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class Frame1 extends JFrame {

JPanel contentPane;
Panel panel1 = new Panel(); //Pennello 1 - Menu
.....
.....
.....

public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setBackground(SystemColor.control);
contentPane.setLayout(null);

this.setResizable(false);
this.setSize(new Dimension(640, 480));
this.setTitle("MENU");

panel1.setFont(new java.awt.Font("Dialog", 1, 11));
panel1.setForeground(Color.black);
panel1.setBounds(new Rectangle(5, 5, 621, 458));
panel1.setLayout(null);

....
....
....

button1.setFont(new java.awt.Font("Dialog", 0, 10));
button1.setLabel("");
button1.setBounds(new Rectangle(118, 132, 20, 20));
button1.addActionListener(new Frame1_button1_actionAdapter(this));

}

void button1_actionPerformed(ActionEvent e) {

....
....
....

}

protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}

class Frame1_button1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;

Frame1_button1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button1_actionPerformed(e);
}
}

MMarzia
24-01-2005, 14:55
la prossima volta ricorda linguaggio nel titolo e codice "formattato" (= incluso nel tag [*code]..[*/code] senza asterischi)

fraper
24-01-2005, 19:21
grazie per la risposta!

perzem
24-01-2005, 19:31
se tu dichiari la var testo in cima alla classe frame1 non devi passarla come parametro perche tanto la vedono tutti i metodi.....

fraper
24-01-2005, 19:46
Ah, quindi se la dichiaro in cima tipo "String testo;" e poi gli assegno un valore in un metodo tipo "testo = textf.getText();"....la vedono tutti i metodi con il valore che le è stato assegnato....Ora provo....grazie

Loading