Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dieguinn

Qual elemento utilizar, java grafico

Recommended Posts

Gente estou utilizando o Visual Editor do eclipse, a situação é a seguinte.

 

tenho 2 classes distintas: Grafos.java e a trajetoria.java

 

Na grafos.java tem uma aplicacao JPanel que coloquei um botao BTN, quando clico nesse botao abre uma Dialog com a classe trajetoria. Acontecesse que nessa classe trajetoria eu estou lendo um arquivo e quero que esse Dialog ja abra preenchido, como posso fazer isso ? Qual componente se adequaria melhor, e como fazer ?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for desenhar, use JPanel, coloque o JPanel no JDialog que você ta usando, quanto ao arquivo se trata de propriedades,configurações?? da trajetoria??? se for o caso você pode abrir ele no construtor do JPanel q você vai usar p desenhar e depois mandar ver....

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for desenhar, use JPanel, coloque o JPanel no JDialog que você ta usando, quanto ao arquivo se trata de propriedades,configurações?? da trajetoria??? se for o caso você pode abrir ele no construtor do JPanel q você vai usar p desenhar e depois mandar ver....

 

[]s

 

Na verdade nao eh fazer grafico... e sim interface GRAFICA! hehe desculpa... mas a duvida eh a seguinte:

Eu so quero exibir um vetor em uma JLista...Dialog... que seja... exibir sem que seja no console quando aperta o botao

 

segue meu codigo

Grafos (PRINCIPAL):

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.util.Vector;

import javax.swing.JButton;

public class Grafos extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel lblTitulo = null;
	private JButton btnTrajetoria = null;

	/**
	 * This method initializes btnTrajetoria	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnTrajetoria() {
		if (btnTrajetoria == null) {
			btnTrajetoria = new JButton("Exibir a trajetoria");
			btnTrajetoria.setBounds(new Rectangle(124, 107, 138, 30));
			btnTrajetoria.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
				   //se clicar no botao exibir a trajetória...
				   Trajetoria tr = new Trajetoria(new Grafos());
				   tr.setVisible(true);
				   //declaracao
				   Vector vetor = new Vector();
				   
				   tr.lerArquivo("ListaAdjacencia.txt", vetor);
				   
				}
			});
		}
		return btnTrajetoria;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Grafos thisClass = new Grafos();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public Grafos() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setBounds(300, 200, 400, 300);
		this.setContentPane(getJContentPane());
		this.setTitle("Programa desenvolvido para a disciplina de Grafos");
	}

		private JPanel getJContentPane() {
		if (jContentPane == null) {
			lblTitulo = new JLabel();
			lblTitulo.setBounds(new Rectangle(132, 17, 128, 30));
			lblTitulo.setText("Escolha sua opção: ");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(lblTitulo, null);
			jContentPane.add(getBtnTrajetoria(), null);
		}
		return jContentPane;
	}

}

Trajetoria java(ABRE QND APERTA O BOTAO TRAJETORIA)

import javax.swing.JPanel;

import java.awt.Dialog;
import java.awt.Frame;
import java.awt.BorderLayout;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.JDialog;
import javax.swing.JTextPane;
import java.awt.Rectangle;
import javax.swing.JList;
import javax.swing.JTextField;

public class Trajetoria extends JDialog {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JList jList = null;
	public Trajetoria(Frame owner) {
		super(owner);
		initialize();
	}

	
	private void initialize() {
		this.setBounds(300, 200, 300, 200);
		this.setContentPane(getJContentPane());
		
	}

	
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJList(), null);
			
		}
		return jContentPane;
	}
	
	private JList getJList() {
		if (jList == null) {
			jList = new JList();
			jList.setBounds(new Rectangle(18, 16, 255, 139));
			
		}
		return jList;
	}
	
	public void lerArquivo(String nomeArq, Vector vetor){
		try{
			BufferedReader in = new BufferedReader (new FileReader(nomeArq)); // Abre arquivo
			String str;
			String tmp; // Variavel temporaria 1
			String tmp2 = ""; // Variavel temporaria 2
			String separador = ","; // Separador de vertices no arquivo
			String fimLinha = "."; // Indica o fim da linha no arquivo
			
			int tam = Integer.parseInt(in.readLine()); //armazenando tamanho que está contido no arquivo (primeira linha)
			
			int pos; // posicao vetor
			int c = 0; // contador
			int dig; // digitos
			
			vetor.add(tam); // Adiciona o tamanho à primeira posição do vetor
			
			while (in.ready()){ //percorre o arquivo ate o final 
				List lista = new ArrayList(); // Cria e instancia a lista
				str = in.readLine();
												
				c++; // incrementa contador
				
				if ( c < 10 ){ // se a linha atual é menor que 10
					pos = Integer.parseInt(str.charAt(0)+""); // pega so a primeira posição (1 digito)
					dig = 1;
				}
				else{ // se a linha atual é maior que 10
					pos = Integer.parseInt(str.charAt(0)+""+str.charAt(1)+""); // pega as duas primeiras posiçoes (2 digitos)
					dig = 2;
				}
				
				tmp = str.substring(dig+1,str.length()); // pega somente o que está entre o digito de separação até o ultimo digito da linha
				
				
				// percorre a linha
				for ( int i = 0; i < tmp.length(); i = i + 1 ){
					tmp2 = tmp2+""+tmp.charAt(i)+""; // pega o caracter na posiçao 'i' concatenando com o que ja estava na variavel
					int tam2 = tmp2.length(); // atribui à varialvel tam2 o tamanho da string temporaria2
					String last = tmp2.charAt(tam2-1)+""; // Pega a ultima letra da variavel
					if( last.equals(separador) || last.equals(fimLinha)){ // comparara se a ultima letra é virgula ou ponto
						tmp2 = tmp2.replace(",",""); // substitui as virgulas por nada
						tmp2 = tmp2.replace(".",""); // substitui os pontos por nada
						lista.add(tmp2); // adiciona a variavel para a lista
					    tmp2 = ""; // zera a variavel temporaria
					}
				}
				
				vetor.add(lista); // Adiciona a lista para o vetor
			}
			in.close(); // fecha o arquivo
			
			// -------- Percorre o vetor para imprimir os valores da lista
			for (int j = 1; j < vetor.size(); j = j + 1){
				List lista2 = new ArrayList();
				lista2.add(vetor.get(j));
				//***********TO QUERENDO SABER EH AQUI...COMO EXIBO TUDO EM UMA JLIST..OU DIALOG...QUE SEJA********
				System.out.println("Vertice: "+j+" segue para vertices: "+lista2.get(0)); // Imprime lista
				
			}
			
			
		} catch (IOException e){
			e.printStackTrace(); // lança exceção se der erro
		}
		
		
	}

	

}


obs: na hora de exibir.. da duvida mesmo eu escrevi "//***********TO QUERENDO SABER EH AQUI...COMO EXIBO TUDO EM UMA JLIST..OU DIALOG...QUE SEJA********" no codigo.

 

Se puder me ajudar por favor, ja quebrei d+ a cabeça com isso =/

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tava pesquisando aki.. parece que com label e melhor ...

 

estou fazendo assim mas esta aparecendo somente o ultimo valor... pq ??

 

for (int j = 1; j < vetor.size(); j = j + 1){
				List lista2 = new ArrayList();
				lista2.add(vetor.get(j));
				
				lblMain.setText("Vertice: "+j+" segue para vertices: "+lista2.get(0));
				//System.out.println("Vertice: "+j+" segue para vertices: "+lista2.get(0)); // Imprime lista
				
			}

Compartilhar este post


Link para o post
Compartilhar em outros sites

indo direito pra sua dúvida vou botar um exemplo onde você exibe o conteudo de um vetor em uma JList despois de apertar um botão:

 

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.WindowConstants;

public class Janela extends JFrame {
	private JButton botao;
	private JList list;

	public Janela() {
		setLayout(new FlowLayout());
		Container container = getContentPane();

		botao = new JButton("Adicionar dados a Lista");
		list = new JList();
		list.setVisibleRowCount(5);
		final DefaultListModel model = new DefaultListModel();
		list.setModel(model);
		container.add(botao);
		container.add(list);

		botao.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// aqui está o array
				String palavras[] = { "palavra1", "palavra2", "palavra3",
						"palavra4" };
				for (int i = 0; i < palavras.length; ++i) {
					model.add(i, palavras[i]);
				}
			}
		});

		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		setSize(400, 400);
		setVisible(true);

	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.