Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-02-2008, 19:24   #1
clyrix
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 2
[JAVA] problema di visualizzazione con JTable

ciao a tutti!
dopo aver cercato in lungo e in largo una soluzione al mio problema, mi rivolgo a voi, sperando di mettere fine alle mie pene...

Nella mia interfaccia ho una JTable.
per poterne colorare determinate celle, ho inserito in un array il numero di riga della cella da colorare, dunque gli indici dell'array corrispondono alle colonne e il contenuto corrisponde all'unica cella da colorare in ciascuna colonna.

Sono riuscita a farlo definendo un Renderer.
il problema è cha da un certo punto in poi si incanta: vale a dire che il renderer delle ultime colonne resta uguale per tutte, indipendentemente dai valori contenuti nell'array.
inoltre se sposto la scroll bar del JScrollPane contenente la tabella, i colori delle ultime colonne vengono semicancellati...
con gli updateUI non ho risolto nulla.... non so che pesci prendere.

Questa è la ridefinizione del Renderer. vittime è il nome dell'array.

Codice:
public class MyTableRenderer extends DefaultTableCellRenderer {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

for (int i=0; i<npagine; i++)
 {
               if  (column==i) 
                cell.setBackground(row==vittime[i] ? Color.cyan : Color.white);	

 }
return cell;
}
}

lo uso qui:

Codice:
mtr = new MyTableRenderer();

for (int c=0;c<vittime.length;c++)
			{
			if (vittime[c]!=-1) 
			mvtab.getColumnModel().getColumn(c).setCellRenderer(mtr); 
			
		}
se avete un consiglio, qualunque consiglio, ditemi pure!
clyrix è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2008, 07:50   #2
TuX2K6
Member
 
Iscritto dal: Apr 2006
Messaggi: 225
Ti posto il mio renderer, l'unica cosa che ho fatto è stato settarlo alla tabella

Codice:
private class Renderer implements TableCellRenderer{

		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
			//table.getColumnModel().getColumn(0).setWidth(0);
			JLabel label = new JLabel();
			if(value!=null)
				label.setText(value.toString());
			
			if(isSelected){
				label.setOpaque(true);
				label.setBackground(Color.ORANGE);
			}else
				if((row % 2)==0){
					label.setOpaque(true);
					label.setBackground(new Color(166,202,240));
				}else
					label.setBackground(Color.WHITE);
				

			return label;
		}
		
	}
TuX2K6 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2008, 10:46   #3
clyrix
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 2
stringhe si, stringhe no

Ciao Tux, ti ringrazio, iniziavo a perdere le speranze!

ispirandomi al tuo ho modificato nel modo seguente:

Codice:
public class MyTableRenderer implements TableCellRenderer {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
//Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
JLabel label = new JLabel();
label.setText(value.toString());

for (int i=0; i<npagine; i++)
{

if (column==i) {                                       //per ogni colonna
		if (row==vittime[i]) {                //se la riga è quella indicata nel vettore colora d'azzurro 
		label.setOpaque(true);
		label.setBackground( Color.cyan );
		}
else {		label.setOpaque(true);
		label.setBackground( Color.white );	
		}
}
}
return label;
}
}
...ma il comportamento è lo stesso!
io per necessità devo colorare lo sfondo di alcune righe in alcune colonne, le righe da colorare sono nel vettore "vittime".
Per alcune sequenze nel vettore vittime, funziona tutto bene. per altre no
che sia un problema di concorrenza? non saprei come gestire delle thread, vorrei evitarlo
clyrix è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2008, 13:21   #4
TuX2K6
Member
 
Iscritto dal: Apr 2006
Messaggi: 225
Ho fatto velocemente una prova, purtroppo senza spulciare troppo il tuo codice, usando un Set<Integer> e mi sembra funzionare
Praticamente controllo se il n° di riga è contenuto nel Set ed in quel caso cambio il colore

Codice:
public class MyTableRenderer implements TableCellRenderer {

		Set<Integer> selected;

		public MyTableRenderer(Set<Integer> selected) {
			this.selected = selected;
		}

		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
				boolean hasFocus, int row, int column) {
			JLabel label = new JLabel();
			if (value != null)
				label.setText(value.toString());

			if (selected.contains(row)) {
				label.setOpaque(true);
				label.setBackground(Color.ORANGE);
			} else
				label.setBackground(Color.WHITE);

			return label;
		}

	}
TuX2K6 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
SpaceX: i video e le foto dello spettaco...
Anche a Pescara si passa ai fatti: e-bik...
La One UI 8 è pronta: Samsung con...
Xiaomi annuncia l'arrivo in Italia dei R...
La Cina stupisce ancora: test per la tur...
L'iconico iMac G3 diventerà un set LEGO?...
Microsoft: nessun legame tra update di a...
Rivoluzione in arrivo per Threads: il so...
Battlefield 6: molti utenti hanno giocat...
Acronis sfrutterà le NPU delle CP...
ChatGPT, le chat possono essere segnalat...
Xiaomi lancia HyperOS 3 basato su Androi...
Tesla lancia la Model Y Performance: nuo...
HPE aggiunge nuove funzionalità d...
Socket AM5 a rischio? ASRock prova a spe...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v