JTable Urgente! Please!

9 respostas
M

tardeee pessoas....seguinte, segue o código abaixo:

import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.awt.*;

public class Tabela{
   public static void main(String args[]){
      DefaultTableModel modeloTabela;
      JTable tabela;
      
      Container caixa = getContentPane();
      caixa.setLayout(new FlowLayout());

      String[] colunas = new String []{"Nome","Idade"};
      String[][] dados = new String [][]{"Daniel","21"};

      modeloTabela = new DefaultTableModel(dados,colunas);
      tabela = new JTable(modeloTabela);
      tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

      caixa.add(tabela);

      setVisible(true);
      pack();
      setTitle("Cadastro");
   }
}

Se possível, em cima desse código, como faço para Mesclar duas células e configurar a Fonte de uma determinada célulca deixando ela com tamanho diferente e negrito.

Se não fosse pedir muito, montar em cima desse mesmo código..já li vários documentos até da Sun direto e não consigo entender como fazer isso...faz 2 dias q to correndo atrás....aaaaaaaaaaaaaaaaaaaaaaa.....rs

No Aguardo

9 Respostas

victor.godinho

Oooo filhote, dá uma pesquisada no guj antes.

http://www.guj.com.br/posts/list/99346.java#535309

Falows

M

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); setFont(getFont().deriveFont(Font.BOLD)); return this; }

Não compila…dá erro bem em cima do

Quais bibliotecas tem que importar? eu estou importando

import javax.swing.*; import javax.swing.table.*; import java.awt.event.*; import java.awt.*; import java.sql.*; import java.text.DecimalFormat;

victor.godinho

Opa,

dá erro naquela linha porque o kara tava dando extends de DefaultTableCellRenderer, saka? por isso o “super.”.

Os imports você acertou, perfeito.

Dá um ligue aqui:
Tem um código completo, ao invés de só pedaços, acho que vai ajudar mais.

http://www.javafree.org/javabb/viewtopic.jbb?t=8833

Falows,

M

Blz…mas, mesmo assim, continua dando erro…

desculpe pela insistencia e pela chatisse mas, to começando agora os esquemas com java…a faculdade nem ensinou ainda Frame e u to aprendendo aos trancos e barrancos…

se nao fosse pedir mttooooo…daria pra fazer um exemplo com o código q eu coloquei lá em cima? se puder tmb, como Mesclar duas células…

desde já, agradeço

ViniGodoy

Cara, se vc está começando agora, e não manja nada, desista da idéia de mesclar duas células. É uma das tarefas que exige um conhecimento avançado do JTable.

M

veio…se vc não quer ajudar, nem comenta…pra eu aprender, preciso fuçar e tentar conhecer o esquema…

belo insentivo seu hein…vc deve ser mto bom nas coisas q faz, desiste sempre na primeira.

melhor enxergar do ler certas coisas…pelo amor…

brlima

Manera aí mvergani …

Concordo com o Vini que realmente, se nao manja nada de JTable, melhor nem arriscar a perder semanas nisso, pq nao é facil msm… a nao ser que ache algo pronto e funcionando…

Eu aconselho vc a enteder de Renderer e Editor e Scrolpane e Jtable e Model primeiro, e depois partir pra entender isso de juntar celula e tal.

Aliás, na Sun acho q nao vai ter nada falando como fazer isso… Vai ter alguns exemplos perdidos por ai (nao tenho mais o link, se achar posto aqui)…

Tudo bem que desistir nao dá, mas entrar chutando a porta sem saber o que tem do outro lado é pior… rsrs

Abraços!

ViniGodoy

mvergani:
veio…se vc não quer ajudar, nem comenta…pra eu aprender, preciso fuçar e tentar conhecer o esquema…
belo insentivo seu hein…vc deve ser mto bom nas coisas q faz, desiste sempre na primeira.
melhor enxergar do ler certas coisas…pelo amor…

Calma cara, não falei por mal. Pensei que você tivesse algum prazo e as vezes é muito melhor negociar um requisito dificílimo como esse, do que dizer que “dá um jeito” e quebrar a cara depois.

E essa é uma das coisas que dá um trabalho realmente gigantesco. Chego a dizer que é uma das tarefas mais ingratas que se pode querer no Swing.

Mas eu não quis dizer que você é incapaz. Se soou assim, me desculpe.

Seu código mostrou que você ainda está iniciando no Swing. Não há mal nenhum em estar começando, ou em querer fazer coisas legais. Mas antes de aprender a pilotar um foguete, é bom conseguir dirigir um carro.

Mesclar células envolve mais do que simplesmente estender uns renderers e editors. É uma das tarefas mais árduas do Swing. Esses componentes estão encapsulados na área de apenas uma célula. O que você quer, envolve mexer no comportamento interno do JTable. E isso realmente não é fácil. Se você tivesse dividindo uma célula, você poderia usar um JPanel dentro da célula e dividir esse painel em dois. Teria que manipular vários eventos e fazer algumas gambis, mas funcionaria.

Agora… mesclar células é algo muitíssimo mais difícil. Você terá que mexer no núcleo da JTable, ou o resultado não ficará bom. Eu mesmo já testei diversos exemplos na internet que tentam só “contornar” o problema e absolutamente nenhum funciona direito.

Se você quiser implementar no braço, sugiro que você comece estudando a fundo (mas a fundo mesmo), o funcionamento da tabela. Primeiro, aprenda a fazer seu próprio Model. Eu mesmo já cansei de repetir isso pro pessoal é até postei exemplos de models prontos aqui no GUJ:
http://www.guj.com.br/posts/list/98452.java
http://www.guj.com.br/posts/list/57203.java

Depois, aprenda como funciona a personalização dos Renderers e Editors. Aprenda também sobre as TableColumns e ColumnModels (mesclar células irá afetar esses conceitos).

Finalmente, aprenda como fazer componentes personalizados no Swing. Para isso, vc terá que entender o funcionamento do método paintComponent e como os eventos são delegados. Aí, depois disso tudo, sente e esboce sua classe de JTable que pode mesclar células.

M

ok ok…confesso que peguei pesado…entendi errado…eu que peço desculpas…

realment, estou começando agora…2º ano de sistemas e o prof nem começou com isso ainda…anciedade é foda…rs…

blz, vou seguir seu conselho e novamente peço desculpas pela minha ignorancia…

obrigado pela ajuda!!!

Criado 8 de agosto de 2008
Ultima resposta 9 de ago. de 2008
Respostas 9
Participantes 4