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 grafica 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 );
}
}