Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2013, 10:29
awik
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 11 años, 10 meses
Puntos: 0
Pintar celda y color de letra

Buena aqui tengo una jtable
que en el menu al poner Nuevo te sale para poner el numero de filas y columnas
una ves dado los numeros se creara la tabla ...

ok pero tienen que anchar un poco el frame para q aparesca la tabla
ok quiero cuando seleccionan color fuente y escoja el color de fondo
se abrira un panel de colores , entonces yo selecciono uno y quiero q me pinte la celda segun cual haya dado click ..


lo mismo para color de letra , segun el color q yo haya escogido al momento de escribir en una celda se escribira segun el color q haya elegido ..

ok esto si me salio

nada mas que no lo hacen en la tabla



aqui les dejo el codigo completo



[HIGHLIGHT="Java"]/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package proyectoxd;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.text.Style;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
/**
*
* @author Administrador
*/
public class ProyectoTabla_2013II {


public static void main(String[] args) {
JFrame frame = new Tabla();
frame.setSize(500, 500);
frame.setVisible(true);

}
}
class MiModelo extends DefaultTableModel {

@Override
public Object getValueAt(int row, int column) {
return super.getValueAt(row, column); //To change body of generated methods, choose Tools | Templates.
}

public MiModelo(Object[][] data, Object[] columnNames) {
super(data, columnNames);
}

public boolean isCellEditable(int row, int column) {
// Aquí devolvemos true o false según queramos que una celda
if (column == 0) {
return false;
}

return true;
}
}

class Tabla extends JFrame {

JPanel jpanel = new JPanel();


Label resultado=new Label("Ninguna voz de menú clicada");
JPanel panel = new JPanel();

JMenu archivo = new JMenu("Archivo");

JMenu ColordeFuente = new JMenu("Color de Fuente");
JMenuItem ColordeFondo = new JMenuItem("Color de Fondo");

JMenu ColordeLetra = new JMenu("Color de Letra");
JMenuItem mi = new JMenuItem( "Rojo" );
JMenuItem mi2 = new JMenuItem( "Verde" );
JMenuItem mi3 = new JMenuItem( "Azul" );

JMenu ayuda = new JMenu("Ayuda");





private Style estiloRojo, estiloVerde, estiloAzul;
private JTextPane texto;


JMenuBar menu = new JMenuBar();
JMenuBar edicion = new JMenuBar();

JMenuItem nuevo = new JMenuItem("Nuevo");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem salir = new JMenuItem("Salir");

String[] val = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
//27
ArrayList combinado = new ArrayList();
ArrayList combinado2 = new ArrayList();


public void crea(final int f,final int c){
final MiModelo dtm = new MiModelo(creartablaModoXxY(f,c), crearColumnaN(c));
final JTable tabla1 = new JTable(dtm);

tabla1.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int fila = tabla1.rowAtPoint(e.getPoint());
int columna = tabla1.columnAtPoint(e.getPoint());
if ((fila > -1) && (columna > -1))

System.out.println(dtm.getValueAt(fila, columna));
}
});

for(int i=0;i<f;i++){
for(int j=0;j<c;j++){

dtm.isCellEditable(i, j);}

}

TableColumn columna = tabla1.getColumn(" ");
columna.setMaxWidth(40);

tabla1.setPreferredScrollableViewportSize(new Dimension(500,700));
JScrollPane scrollPane = new JScrollPane(tabla1);
getContentPane().add(scrollPane, BorderLayout.CENTER);
tabla1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabla1.doLayout();
}





public void combinar2(int t, int p, int posa, int posb, int posc) {

// JOptionPane.showMessageDialog(null, t);
if (p == t) {

return;
}
if (posc == 27) {


if (posb < 27) {
posb = posb + 1;

posc = 0;
}
if (posb == 27) {
posa = posa + 1;
posb = 0;
posc = 0;
}
}
combinado2.add(val[posa] + val[posb] + val[posc]);
combinar2(t, p + 1, posa, posb, posc + 1);
}



public void combinar(int t, int z, int posa, int posb) {
// JOptionPane.showMessageDialog(null,"lml" +z+"," +combinado.size());
if (z == t) {
// JOptionPane.showMessageDialog(null,"lml" +z+"," +combinado.size());
return;
}
// JOptionPane.showMessageDialog(null,posa+","+posb);
if (posb == 27) {

posa = posa + 1;
posb = 0;

}
combinado.add(val[posa] + val[posb]);
combinar(t, z + 1, posa, posb + 1);

}
//aim

public String[] crearColumnaN(int t) {

String vec[] = new String[t + 1];
int e = 0;
int x = 0;
if (t > 756) {

combinar2(t - 756, 0, 0, 0, 0); //702 veces

// JOptionPane.showMessageDialog(null,combinado2);
}
if (t > 27) {

if (t < 756) {

combinar(t - 27, 0, 0, 0);

} else {

combinar(729, 0, 0, 0);//729

}
}


for (int i = 0; i < t + 1; i++) {
if (i == 0) {

vec[i] = " ";
} else {
if (i <= val.length) {

vec[i] = val[i - 1];
} else if (i > 756) {

vec[i] = combinado2.get(x).toString();
x++;

} else {

vec[i] = combinado.get(e).toString();

// JOptionPane.showMessageDialog(null,i+","+e);
e++;
}
}

}

return vec;
}

public int[] crearFilaN(int f) {
int val = 1;
int vec[] = new int[f];
for (int i = 0; i < f; i++) {
vec[i] = val;
val++;
}
return vec;
}

public Object[][] creartablaModoXxY(int f, int c) {
int vf[] = crearFilaN(f);
Object[][] cuerpo = new Object[f][c + 1];
int z = 0;
for (int i = 0; i < f; i++) {
for (int j = 0; j < c + 1; j++) {
if (j == 0) {
cuerpo[i][j] = vf[z];
z++;
} else {
cuerpo[i][j] = "";
}
}
}
return cuerpo;
}