risultato di un vettore in una finestra

  • Creatore Discussione Creatore Discussione vide91
  • Data di inizio Data di inizio

vide91

Nuovo Utente
31 Mag 2012
26
0
0
Salve a tutti,
ho due classi che mi stampano un vettore, la prima

Codice:
package elementiBase ;


public class Vettore {
	
	private String [] v_nomi;

	public String [] getV_nomi() {
		return v_nomi;
	}

	public void setV_nomi(String [] v_nomi) {
		this.v_nomi = v_nomi;
	
	}

	public void stampa(){
	int i = 0;
	
	for (i=0;i<3;i++){
		System.out.println(v_nomi[i]);
	}
	}

}

e la seconda con inserimento di alcuni dati

Codice:
package Test;

import elementiBase.Vettore;

public class StampaVettore {


	public static void main(String[] args) {
			
			Vettore n = new Vettore();
			n.setV_nomi(new String[]{"anna","luca","corrado"});
			n.stampa() ;
	}
}

ora sono riuscito a stampare una semplice finestra statica...vorrei modificare la scritta "questo è il contenuto della finestra" con la stampa del vettore

Codice:
package Grafica;

import javax.swing.*;   //librerie per finestre
import java.awt.*;

public class FinestraStampaVettore {

		public static void main(String args[])
		{
		JFrame win;
		win = new JFrame("Questa è l'intestazione della finestra");
		
		Container c = win.getContentPane();
		c.add(new JLabel("Questo è il contenuto della finestra"));
		
		win.setSize(200,200);         
		win.setDefaultCloseOperation
		(JFrame.EXIT_ON_CLOSE);     
		win.setVisible(true);
		}
	}


ora ho provato in molti modi...non voglio pasticciare inutilmente con mostruosità (non cerco la pappa pronta) solo che non so proprio come modificare:(
 
dimenticavo, penso che sicuramente nella classe finestra ci dovrà andare
Codice:
  import Test.StampaVettore //la classe dove carico il vettore n
 
Ciao,

preticamente hai fatto una classe che stampa delle stringhe sullo standard out, però ora vuoi mostrare queste stringhe in una finestra.

Devi quindi cambiare la classe vettore in modo da potergli passare a runtime il PrintStream dove vuoi che venga stampata la stringa.

Codice:
import java.io.PrintStream;

public class Vettore {

	/**
	 * Stream sul quale stampare il vettore
	 */
	private PrintStream printStream;

	private String[] v_nomi;

	/**
	 * Costruttore, assegno al printStream lo standard out
	 */
	public Vettore() {
		super();
		printStream = System.out;
	}

	public void stampa() {
		int i = 0;

		for (i = 0; i < 3; i++) {
			printStream.println(v_nomi[i]);
		}
	}

	public String[] getV_nomi() {
		return v_nomi;
	}

	public void setV_nomi(String[] v_nomi) {
		this.v_nomi = v_nomi;

	}

	/**
	 * Aggiorna il printStream
	 * 
	 * @param printStream
	 */
	public void setPrintStream(PrintStream printStream) {
		this.printStream = printStream;
	}

}
 
grazie...per la risposta ma non ho capito se il codice che mi hai mostrato deve essere ancora modificato o meno...posso avere un esempio completo...da fare copia e incolla in modo da poter mettere mano da una cosa corretta in partenza...scusa ma non sto capendo:crying:
 
Avevi detto che non volevi la pappa pronta e non ti ho messo l'altra classe......

Codice:
import java.awt.Container;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class FinestraStampaVettore {

	public static void main(String args[]) {

		JFrame win = new JFrame("Questa è l'intestazione della finestra");

		Container c = win.getContentPane();

		Vettore v = new Vettore();
		v.setV_nomi(new String[] { "anna", "luca", "corrado" });

		ByteArrayOutputStream out = new ByteArrayOutputStream();
		v.setPrintStream(new PrintStream(out));
		v.stampa();

		c.add(new JLabel(new String(out.toByteArray())));

		win.setSize(200, 200);
		win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		win.setVisible(true);
	}
}

Devi studiarti l'IO di java, ciao
 

Discussioni simili