Article View: es.comp.lenguajes.java
Article #27324Tengo algunos problemillas con Swing
From: p134409403
Date: Sun, 04 Oct 1998 00:00
Date: Sun, 04 Oct 1998 00:00
133 lines
4117 bytes
4117 bytes
Hola a todos
En primer lugar quiero agradecer la ayuda a quienes me han respondido
en mensajes anteriores y que me ha sido de gran utilidad.
Voy con el problemilla
Tengo un codigo(al final del mensaje) que me muestra en pantalla una
lista(JList), cada fila tiene 3 campos, el tercero es editable(un
JComboBox),pero en el programatanto el primero como el segundo campo
son editables y no quiero que se puedan modificar . Como lo hago?
Puedo cambiar el color de una fila que ha sido modificada,
seleccionando algun elemento del ComboBox?
Y por ultimo, como se imprimiria la lista completa por impresora?
Estoy utilizando JDK 1.1.6 y Swing 1.0.2 (tuve que desinstalar
JDK1.2Beta3 porque me daba problemas). A proposito, sabeis cuando se
lanzara la version definitiva del JDK 1.2
El codigo es el siguiente:
import com.sun.java.swing.*;
import java.awt.event.*;
import com.sun.java.swing.table.*;
import com.sun.java.swing.border.*;
import java.awt.Dimension;
import java.awt.*;
import java.util.*;
class pr extends JFrame implements ActionListener{
JButton b;
JButton c;
ModeloTabla a;
JTable tab;
JScrollPane scroll;
public pr(){
b=new JButton("pulsa");
c=new JButton("Muestra");
getContentPane().add("East",b);
getContentPane().add("West",c);
b.addActionListener(this);
c.addActionListener(this);
setLocation (50,50);
setSize(500,300);
}
public static void main(String args[]){
pr n=new pr();
n.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==b){
Stringh=newString("1$jose$perro$2$juan$gato$3$miguel$caballo$4$fede
$gato$5$marisa$perro$6$fran$gato$1$jose$perro$2$juan$gato$3$miguel$caballo$
4$fede$gato$5$marisa$perro$6$fran$gato$1$jose$perro$2$juan$gato$3$miguel$caballo
$4$fede$gato$5$marisa$perro$6$fran$gato");
a=new ModeloTabla(h);
tab=new JTable(a);
JComboBox combo=new JComboBox();
combo.addItem("caballo");
combo.addItem("gato");
combo.addItem("perro");
TableColumn columnaNotas=tab.getColumn("animal");
columnaNotas.setCellEditor(new DefaultCellEditor(combo));
scroll=JTable.createScrollPaneForTable(tab);
scroll.setBorder(new BevelBorder(BevelBorder.LOWERED));
scroll.setPreferredSize(new Dimension(400,200));
getContentPane().add(scroll);
validate();
}
if (e.getSource()==c){
scroll.setVisible(false);
}
}
}
Y la clase TablaModelo:
import com.sun.java.swing.*;
import com.sun.java.swing.table.*;
import java.util.*;
class ModeloTabla extends AbstractTableModel
{
final String[] names={"numero","nombre","animal"};
final Object[][] data;
ModeloTabla(String s)
{
StringTokenizer st2=new StringTokenizer(s,"$");
int i=st2.countTokens();
int numeroLineas=(i+1)/3;
data=new String[numeroLineas][3];
System.out.println(st2.countTokens());
for(i=0;st2.hasMoreTokens();i++)
{
data[i][0]=st2.nextToken();
data[i][1]=st2.nextToken();
data[i][2]=st2.nextToken();
}
}
public int getColumnCount()
{
return names.length;
}
public int getRowCount()
{
return data.length;
}
public Object getValueAt(int row,int col)
{
return data[row][col];
}
public String getColumnName(int column)
{
return names[column];
}
public boolean isCellEditable(int row,int col)
{
return true;
}
public void setValueAt(Object aValue,int row,int column)
{
data[row][column]=aValue;
}
}
Eso es todo ( por ahora, :) ), gracias
p134409403@abonados.cplus.es
Technical Details
Message-ID:
<361795f9.1130867@noticias.ibernet.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit X-Google-Thread: 1116f3,8f69ef0bcd97b5dd,start X-Google-Attributes: gid1116f3,public From: p134409403@abonados.cplus.es Subject: Tengo algunos problemillas con Swing Date: 1998/10/04 Message-ID: <361795f9.1130867@noticias.ibernet.es> X-Deja-AN: 398008372 Organization: Telefonica Transmision de Datos Newsgroups: es.comp.lenguajes.java