Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
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


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...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Porsche: addio alla produzione di batter...
WD Blue SN5100: Sandisk rinnova la serie...
Oracle espande la sua offerta di modelli...
Come il robot DEEBOT X8 PRO OMNI sta con...
Come TPM 2.0 e SecureBoot sono diventati...
17 svendite imperdibili Amazon, da 9,85€...
BOE punta a diventare partner di Samsung...
Modifica foto come mai prima! Arriva su ...
NVIDIA GB10 Grace Blackwell: il 'piccolo...
Le 4 migliori occasioni per potenziare i...
Squadron 42 (Star Citizen) sfida GTA 6? ...
Il robot AiMOGA di Omoda Jaecoo ora &egr...
Core i9-14900KF a 9,13 GHz con elio liqu...
Stellantis fa retromarcia: sospeso il pr...
Irlanda, sui treni si fa silenzio: multe...
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: 14:33.


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