Ah, ho capito... e in che modo vorresti rendere queste classi riutilizzabili? Non vedo tanto la possibilità di creare codice riusabile in questo caso. O meglio, già di per se, essendo una classe, è riusabile: tu quella classe la puoi tranquillamente utilizzare all'interno di un altro programma; però non credo che si possa generalizzare quel codice... in fin dei conti quel codice ha senso di esistere solo in quella applicazione.
Quello che mi viene in mente, così di primo acchitto, è di portare la TextField, la TextArea ed il pulsante in una classe a parte in modo da poterla utilizzare come una piccola "interfaccina" già pronta all'uso. Vediamo che ne esce:
codice:
public class Interfaccia extends Panel implements ActionListener {
private TextField inputLine;
private TextArea ta;
private Button pulsante;
private String lastValore;
private Finestra f;
public Interfaccia(Finestra f) {
this.f = f;
setLayout( new BorderLayout() );
inputLine = new TextField();
ta = new TextArea();
pulsante = new Button("Inserisci");
pulsante.addActionListener( this );
add(inputLine, BorderLayout.NORTH);
add(ta, BorderLayout.CENTER);
add(pulsante, BorderLayout.SOUTH);
}
public String getLastValore() {
return (lastValore != null) ? lastValore : "";
}
public void actionPerformed(ActionEvent ae) {
ta.append( inputLine.getText() );
lastValore = inputLine.getText();
f.notificaInserimento();
}
}
public class Finestra extends Frame {
private Interfaccia interfaccia;
private int [] numeri;
private int indice;
public Finestra() {
setLayout( new BorderLayout() );
numeri = new int[10];
indice = 0;
interfaccia = new Interfaccia(this);
add(interfaccia, BorderLayout.CENTER);
setVisible(true);
}
public void notificaInserimento() {
String tmp;
if (indice < 10) {
tmp = interfaccia.getLastValore();
if (!tmp.equals("")) {
numeri[indice] = Integer.parseInt( tmp );
indice++;
}
}
}
public static void main(String [] args) {
Finestra f = new Finestra();
}
}
Non è proprio il massimo, però già c'è una separazione fra oggetti.
Ciao.