Folha de Calculo

0 respostas
CondeGil

Boas pessoal, tenho um problema q nao estou a conseguir resolver, se alguem me poder ajudar agradecia,
o enunciado é o seguinte:


Pretende-se uma aplicacao folha de calculo com interface grafi ca implementada sobre a
framework Swing. A aplicacao devera apresentar uma grelha de celulas ao utilizador,
mostrando um valor do tipo double em cada celula. A grelha devera estar limitada a
30 linhas e 26 colunas.

o que se passa é que eu nao consigo meter um scrollbar nisto, as colunas e linhas nao tem um valor fixo, dimensionam-se conforme a janela e assim nao pode ser. o codigo q ja tenho é o seguinte:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.ArrayList;
import java.util.Collection;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;


public class exFrame extends JFrame {

	public exFrame(){
	
		//especificaçoes da janela inicial
		this.setTitle("folha de calculo v1");
		this.setSize(1000,700);
		this.setExtendedState(MAXIMIZED_BOTH);
		
		//ACRESCENTAR GRIDs
		JPanel painelduplo = new JPanel();
		painelduplo.setLayout(new BorderLayout());
		JPanel cells = new JPanel();
		cells.setLayout(new GridLayout(27,1));
		JPanel cellssouth = new JPanel();
		cellssouth.setLayout(new GridLayout(1,31));
		
		painelduplo.add(cellssouth,BorderLayout.SOUTH);
		this.getContentPane().add(cells,BorderLayout.WEST);
		
		//acrescetar celulas a grid
		Dimension d = new Dimension(10,200);
		Collection c = new ArrayList(837);
		cells.add(new JLabel("________"));
		int i=0;
		char []letra = new char[1];
		letra[0]='A';
		String letras = "        ";
		while(i!=26){
			letra[0] = (char) ('A'+i);
			letras+=letra[0];
			cells.add(new JLabel(letras));
			letras="        ";
			i++;
		}
		cellssouth.add(new JLabel("________"));
		i=1;
		while(i!=31){
			cellssouth.add(new JLabel(""+i));
			i++;
		}
		
		int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
		int h0 = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;
		JScrollPane scroller = new JScrollPane(painelduplo, v, h0);
		
		
		
		
		
		
		// adicionar caixa para funçoes
		JButton bot = new JButton("Funções");
		JButton bot2 = new JButton("   save   ");
		
		
		//adicionar componentes a painel north da pane
		JPanel celle = new JPanel();
		celle.setLayout(new GridLayout(2,1));
		painelduplo.add(bot,BorderLayout.WEST);
		JTextField jj = new JTextField();
		painelduplo.add(jj);
		painelduplo.add(bot2,BorderLayout.EAST);
		
		
		
		
		
		//jj.getInputContext();
		
		//adicionar painel de save e funçoes
		this.getContentPane().add(painelduplo,BorderLayout.NORTH);
		

		//janela de ajuda
		janfunc h = new janfunc();
		h.setVisible(false);
		bot.addActionListener(new help(h));
		WindowListener windowListener = new windowlistadp();
		h.addWindowListener( windowListener );

	}
}
Criado 27 de agosto de 2009
Respostas 0
Participantes 1