|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[JAVA] Jtable e testo forzato
ho già chiesto e ricuevuto risposta su come forzare l'inserimento delle sole cifre in una jtextfield, è possibile fare la stessa cosa in una jtable, magari aggiungiendo le virgole??????
__________________
My gaming placement |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Dovresti crearti un tuo modello per la tabella(estendi AbstractTableModel) e fare l'override del metodo "setValueAt(Object value,int riga,int colonna)".
Codice:
public void setValueAt(Object value,int riga,int colonna){
Object[] server=getServer(riga);
server[colonna]=value;
data.set(riga,server);
fireTableCellUpdated(riga,colonna);
}
data è qualcosa del genere "private Vector<Object[]> data=new Vector<Object[]>();" Secondo me è così, am aspetta andbin e PGI |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
comunque grazie, spero che loro confermino o mi dicano qualcos'altro, nel frattempo provo a sincronizzare i jscroller
__________________
My gaming placement |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Mi è venuto in mente un altra cosa, se tu hai già un tuo componente che permette lìimissione solo di numeri, puoi sostituire quello alle normali celle della jtable.
Sul modo però non sono sicurissimo, ad esempio per inserire un'immagine si fa così: Codice:
public Class<?> getColumnClass(int col) {
if(col==5) return ImageIcon.class;
else return Object.class;
}
Però non sn sicurissimo. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
adesso provo, perchè per il momento ho dei jtextfield "bloccati" a numeri, se posso sostituisco tutte le celle con quelli, però a me servirebbe anche la virgola, ma non come separatore di migliagli, proprio come separatore di cifre....
__________________
My gaming placement |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
ho qualche problemino, praticamente non riesco a farlo, hai del codice più completo, perchè io sono completamente rinco.........
__________________
My gaming placement |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti incolla qua il mio abstract model per la tabella che feci per i server del mio giochino:
Codice:
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class ModelloTabellaServer extends AbstractTableModel{
private String[] nomiColonne={"Nome","Giocatori","Mappa","Modalità","Ping",""};
private Vector<Object[]> data=new Vector<Object[]>();
public ModelloTabellaServer(){
data.add(new Object[]{"Nessun server trovato...","","","","",""});
}
public int getRowCount(){
return data.size();
}
public int getColumnCount(){
return nomiColonne.length;
}
public Class<?> getColumnClass(int col) {
if(col==5) return ImageIcon.class;
else return Object.class;
}
public Object getValueAt(int riga,int colonna){
return data.get(riga)[colonna];
}
public String getColumnName(int colonna){
return nomiColonne[colonna];
}
public void setValueAt(Object value,int riga,int colonna){
Object[] server=getServer(riga);
server[colonna]=value;
data.set(riga,server);
fireTableCellUpdated(riga,colonna);
}
public Object[] getServer(int riga){
return data.get(riga);
}
public void addServer(Object[] server){
String info=(String)server[4];
String ping=info.substring(5,info.indexOf(' '));
if(Integer.parseInt(ping)>170) server[5]=new ImageIcon("textures/menu/pess.png");
else if(Integer.parseInt(ping)>70) server[5]=new ImageIcon("textures/menu/buono.png");
else server[5]=new ImageIcon("textures/menu/ott.png");
data.add(server);
fireTableDataChanged();
}
public void removeServer(Object[] server){
data.remove(server);
fireTableDataChanged();
}
public void rimuoviTutto(){
data.clear();
fireTableDataChanged();
}
public void rimuoviUltimo(){
data.remove(data.size()-1);
fireTableDataChanged();
}
}
Comunque in questo pezzo di codice: Codice:
public Class<?> getColumnClass(int col) {
if(col==5) return ImageIcon.class;
else return Object.class;
}
Dovrebbe andare prova! Ovviamente poi ogni riga della tua tabella deve essere un array/lista di quegli oggetti non puoi mettere delle stringhe. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:26.



















