View Full Version : [JAVA] problemi con jtable
Ciao a tutti.
sto cercando di fare una piccola applicazione per mettere le mani un po' in pasta:
in sostanza l'applicazione in questione gestisce un piccolo DB in cui sono memorizzati i dati delle squadre.
per la parte con java e mysql sono a posto.
ho qualche problema con l'interfaccia grafica.
Sto cercando di imparare qualcosa, ma swing rimane decisamente ostico.
in particolare il codice che riporto qui sotto ha questi problemi:
errore restituito da netbeans warning: [options] bootstrap class path not set in conjunction with -source 1.6
/home/.../src/GUI/Main.java:40: error: diamond operator is not supported in -source 1.6
se faccio comunque partire l'applicazione mi si apre una finestra con il titolo giusto, ma completamente grigia....:stordita:
già che ci sono: javax.swing.JTable.setModel() che diavolo di valori accetta?
Grazie a tutti per la disponibilità.
package GUI;
import java.util.ArrayList;
import javax.swing.JFrame;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import class2012.*;
[cut]
banryu79
24-01-2012, 08:20
Intanto ti dico questa:
errore restituito da netbeans warning: [options] bootstrap class path not set in conjunction with -source 1.6
ArrayList<Squadra> risultato = new ArrayList<>();
Il diamond operator <> è stato introdotto in Java 7.
Dal messaggio di warning di Netbeans si capisce che nelle proprietà del progetto il livello del sorgente è Java 6. Ergo o setti il livello del sorgente a Java 7, oppure rinunci a usare il diamond operator e dichiari la tua collezione così:
ArrayList<Squadra> risultato = new ArrayList<Squadra>();
Se sei curiosi circa il diamond operator, eccoti un link (http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7)
Intanto ti dico questa:
Il diamond operator <> è stato introdotto in Java 7.
Dal messaggio di warning di Netbeans si capisce che nelle proprietà del progetto il livello del sorgente è Java 6. Ergo o setti il livello del sorgente a Java 7, oppure rinunci a usare il diamond operator e dichiari la tua collezione così:
ArrayList<Squadra> risultato = new ArrayList<Squadra>();
bah...è strano. java 6 questo sistema operativo non l'ha mai neanche visto...
ho anche provato con una nuova installazione di java 7... Secondo me è NetBeans che sbarella, eclipse non me lo da quel problema: il fatto è che comunque blocca la compilazione
banryu79
24-01-2012, 08:45
Devi andare nelle proprietà del progetto, in Netbeans, e settare il livello di sorgente corretto.
@EDIT: se nelle propietà del progetto/livello del sorgente non è disponibile una entry per Java 7, allora devi andare in Tools|Java Platform e usare quel wizard per aggiungere la piattaforma (che ovviamente deve essere già stata installata sul tuo sistema) indicandogli la cartella in cui è contenuta.
Devi andare nelle proprietà del progetto, in Netbeans, e settare il livello di sorgente corretto.
@EDIT: se nelle propietà del progetto/livello del sorgente non è disponibile una entry per Java 7, allora devi andare in Tools|Java Platform e usare quel wizard per aggiungere la piattaforma (che ovviamente deve essere già stata installata sul tuo sistema) indicandogli la cartella in cui è contenuta.
ho fatto esattamente così, ma non è cambiato nulla.
Dichiarando come mi hai suggerito tu funziona (il problema era che fermava proprio la compilazione a quella riga).
non capisco perchè comunque l'applicazione parte, ma la finestra rimane grigia.
:stordita:
banryu79
24-01-2012, 10:57
non capisco perchè comunque l'applicazione parte, ma la finestra rimane grigia.
:stordita:
Ho letto un attimo il codice: non entro nei dettagli perchè non son stato a fargli le pulci, ma per l'amor di dio, non andare ad editare la initComponents() con codice tuo!
Se devi eseguire una query al database e usarne il risultato per popolare dei componenti nell'interfaccia fallo in un metodo a parte che richiamerai dopo la initComponents, tipo:
/**
* Creates new form Main
*/
public Main() {
initComponents();
executeQueryAndUpdateUI();
}
private void executeQueryAndUpdateUI() {
// codice custom...
// esegui la query
// -- se ok, usa il risultato per aggiornare la UI
// -- altrimenti messaggio di errore
}
Ho letto un attimo il codice: non entro nei dettagli perchè non son stato a fargli le pulci, ma per l'amor di dio, non andare ad editare la initComponents() con codice tuo!
Se devi eseguire una query al database e usarne il risultato per popolare dei componenti nell'interfaccia fallo in un metodo a parte che richiamerai dopo la initComponents, tipo:
/**
* Creates new form Main
*/
public Main() {
initComponents();
executeQueryAndUpdateUI();
}
private void executeQueryAndUpdateUI() {
// codice custom...
// esegui la query
// -- se ok, usa il risultato per aggiornare la UI
// -- altrimenti messaggio di errore
}
entra pure nei dettagli! ho scritto qui apposta! ho bisogno di qualcuno che mi insulti!(ovviamente motivando l'insulto, se no non vale -.-'') :D
banryu79
24-01-2012, 11:10
entra pure nei dettagli! ho scritto qui apposta! ho bisogno di qualcuno che mi insulti!(ovviamente motivando l'insulto, se no non vale -.-'') :D
Capisco ma non entro nei dettagli perchè sono al lavoro e non ho molto tempo adesso per questo, e la cosa mi pare richieda un discorso un tantino più sostanzioso (è probelma è di impostazione, non si tratta di correggere qualche svista).
Se però sei fortemente interessato nell'apprendere Swing, (per cominciare) trovi un buon tutotial nel link che ho in firma.
Capisco ma non entro nei dettagli perchè sono al lavoro e non ho molto tempo adesso per questo, e la cosa mi pare richieda un discorso un tantino più sostanzioso (è probelma è di impostazione, non si tratta di correggere qualche svista).
Se però sei fortemente interessato nell'apprendere Swing, (per cominciare) trovi un buon tutotial nel link che ho in firma.
la guida la sto leggendo(e contemporaneamente sto provando a scrivere qualcosa).
io comunque ho messo in initComponents() quel codice perchè netbeans di default mette lì tutta la parte di riempiento (statica) delle jtables
:mbe:
ho risolto il problema posto a inizio thread.
vorrei chiedere due info più generali.
se io in una jtable inserisco dei dati di un query su mysql, dove devo gestire le eccezioni connesse alle query?
sulla finestra che ho creato ho inserito dell jTextField per visualizzare e ricevere dei dati da inserire nel DB. Il problema è che queste caselle dopo un certo tempo dell'esecuzione del programma"collassano" e diventano piccole.da cosa può dipendere questo problema?
edit: aggiungo le immagini per mostrare il collassamento. Si verifica per esempio se clicco in un punto qualsiasi della finestra.
http://img521.imageshack.us/img521/6988/schermatadel20120126162.th.png (http://imageshack.us/photo/my-images/521/schermatadel20120126162.png/)
http://img804.imageshack.us/img804/6988/schermatadel20120126162.th.png (http://imageshack.us/photo/my-images/804/schermatadel20120126162.png/)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.