Jtable

4 respostas
antoniopopete

Eu tenho um panel com 6 botões configurados num BoxLayout,so que quando eu clico no botao de comparacao de contagens,eu gostaria que aparecesse um Jtable na parte de baixo desse mesmo panel, ou entao outra solucao,so que eu queria que esse Jtable,sumisse caso eu clicasse em outra opcao,e aparecesse outras coisas no lugar onde ele estava.
Alguem tem alguma sugestao de como eu posso fazer isso?
Segue o codigo…

package aplicacao.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import org.apache.log4j.Logger;

import aplicacao.bussiness.EditarArquivo;
import aplicacao.bussiness.UtilIO;
import aplicacao.bussiness.Operacao;

public class Gui extends JFrame {

	private static JFileChooser filesChooser;

	public static Logger log = Logger.getLogger(Gui.class);

	public Gui() {
		super("SCC - Sistema de Comparação de Contagem");
		JPanel panel = new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));

		JButton merge = new JButton("Gerar arquivo único para contagem");
		merge.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				try {
					JFileChooser fileChooser = Gui.fileChooser();
					int status = fileChooser.showOpenDialog(null);
					if (status == JFileChooser.APPROVE_OPTION) {

						File selectedFiles[] = fileChooser.getSelectedFiles();
						UtilIO.mergeArquivos(selectedFiles, "contagem");
					}

				} catch (IOException e) {

					System.out.println(e.getMessage());
				} catch (Exception e) {
					System.out.println(e.getMessage());
				}
			}
		});

		JButton setor = new JButton("Gerar arquivo único para setor");
		setor.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				try {
					JFileChooser fileChooser = Gui.fileChooser();
					int status = fileChooser.showOpenDialog(null);
					if (status == JFileChooser.APPROVE_OPTION) {

						File selectedFiles[] = fileChooser.getSelectedFiles();
						UtilIO.mergeArquivos(selectedFiles, "setor");
					}

				} catch (IOException e) {

					System.out.println(e.getMessage());
				} catch (Exception e) {
					System.out.println(e.getMessage());
				}
			}
		});

		JButton comparar = new JButton("Comparar contagens");
		comparar.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				JTable jTable = new JTable();
				jTable
						.setModel(new DefaultTableModel(new Object[][] {},
								new String[] { "Referência", "Contagem 1",
										"Contagem 2" }));

				Operacao.configuraJTable(jTable);
				JScrollPane scrollPane = new JScrollPane(jTable);
				JPanel panelTable = new JPanel();
				panelTable.add(scrollPane);
				getContentPane().add(panelTable, BorderLayout.SOUTH);
				pack();
				setVisible(true);

			}

		});

		JButton relatorio = new JButton("Gerar relatório por setor");
		relatorio.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				JTable jTable = new JTable();
				jTable.setModel(new DefaultTableModel(new Object[][] {},
						new String[] { "Referência",
								"Quantidade na primeira contagem",
								"Setor na contagem 1",
								"Quantidade na segunda contagem",
								"Setor na contagem 2" }));

				Operacao.relatorioSetor(jTable);
				JScrollPane scrollPane = new JScrollPane(jTable);
				JPanel panelTable = new JPanel();
				panelTable.add(scrollPane);
				getContentPane().add(panelTable, BorderLayout.SOUTH);
				pack();
				setVisible(true);
			}
		});

		JButton espacos = new JButton("Configurar espaços das contagens");
		espacos.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				try {
					EditarArquivo.editar();

				} catch (Exception e) {
					System.out.println(e.getMessage());
				}
			}
		});

		panel.add(merge);
		panel.add(comparar);
		panel.add(setor);
		panel.add(relatorio);
		panel.add(espacos);

		getContentPane().add(panel);

		setVisible(true);
		pack();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static JFileChooser fileChooser() {

		if (filesChooser == null) {
			filesChooser = new JFileChooser(".");
			filesChooser.setMultiSelectionEnabled(true);
			File diretorio = new File(
					"C:\\Arquivos de programas\\Recebe\\CFG_NOVA\\SAIDA");
			if (diretorio.exists()) {
				filesChooser.setCurrentDirectory(diretorio);
			}
			filesChooser.setBackground(Color.blue);
			filesChooser.setForeground(Color.red);
		}

		return filesChooser;

	}

	public static void main(String[] args) {

		new Gui();

	}
}

4 Respostas

getAndSet

Olá para fazer aparecer e sumir basta voce na hora em
clica no botão aumenta o tamanho do panel e o tamanho da janela se
ela ficar menor que o tamanho do panel

para fazer ela sumir utilize

brlima

jwindow acho que tb dá pra simular o jpanel, deixando o restante ‘unclickable’… :smiley:

Daí escuta por um focusLost() nessa window pra fechar ela…

antoniopopete

E para eu redimensionar uma coluna pelo conteudo da maior linha dela?
Não entendi muito a parte do ocultar,na verdade não é bem ocultar,o que quero na verdade é que se o usuario clicar no botao de um relatorio ele exiba a table daquele relatorio e se cliccar no botao do outro,ele exiba o outro,e nunca os dois juntos.
Apenas isso…

antoniopopete

Eu nã sei se fiz errado,mas eu criei um novo panel para inserir o jtable…Gostaria que o jtable,ocupasse o espaço todo do frame,como todos os botões,ficassem alinhados,table e buttons.
Grato

Criado 23 de janeiro de 2007
Ultima resposta 23 de jan. de 2007
Respostas 4
Participantes 3