allora io mi sono creato una classe che si chiama VociCd per le info delle voci che mi servono
codice:
public class VociCd {
private String titolo;
private int dimensione;
public VociCd(String titolo,int dimensione) {
this.titolo=titolo;
this.dimensione=dimensione;
}
public String getTitolo() {
return titolo;
}
public int getDimensione() {
return dimensione;
}
public String toString() {
return "TIT: "+titolo+" DIM: "+dimensione;
}
}
poi ho questa classe GestioneCd che funziona da principale che mi da 4 errori
codice:
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
public class GestioneCd{
static Vector cd = new Vector();
static final int DIM_MAX = 700;
private TextArea outputTextArea;
private static final String ls = System.getProperty("line.separator");
//grafica
public void finestraCd() {
//inizio costruzione finestra
JFrame f = new JFrame("Risultati"); // titolo
f.setSize(320,200);// dimensione
f.setLocation(200,200);// posizione
f.setResizable(false);
Container c=f.getContentPane();
outputTextArea = new TextArea(10, 80);
outputTextArea.setEditable(false);
c.add(outputTextArea,"Center");
trovavoci();
f.setVisible(true);//rendo la finestra visibile
}
//fine grafica
public void trovavoci(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db");
Statement stat = con.createStatement();
ResultSet res = stat.executeQuery("SELECT DIMENSIONE,TITOLO FROM PRODOTTO");
Vector voci= new Vector();
VociCd vcd;
String dimensione,titolo;
while (res.next()) {
titolo=res.getString("TITOLO");
dimensione=res.getString("DIMENSIONE");
vcd=new VociCd(titolo,dimensione); // qui mi dice cannot resolve symbol
/*symbol : constructor VociCd (java.lang.String,java.lang.String)
*location: class VociCd
*/
voci.addElement(vcd);
}
//begin trasformazione vettore in un array
VociCd[] dimensioni=new VociCd[voci.size()];
for (int z=0; z<dimensioni.length; z++) {
dimensioni[z]=(VociCd)voci.get(z);
}
//end trasformazione
//begin creazione del vettore cd che contiene al suo interno altri vettori che contengono(titolo e dimensione)
for (int i=0;i<dimensioni.length;){
int dimensioneTotale = 0;
Vector array_cd = new Vector();
Integer[] ogg = new Integer[dimensioni.length];
for (int k=0;k<dimensioni.length;k++){
ogg[k] = new Integer(dimensioni[k]);//qui mi dice cannot resolve symbol
/*symbol : constructor Integer (VociCd)
*location: class java.lang.Integer
*/
}
while(dimensioneTotale+dimensioni[i]<=DIM_MAX){// qui mi dice operator + cannot be applied to int,VociCd
array_cd.add(ogg[i]);
dimensioneTotale+=dimensioni[i];// qui mi dice operator + cannot be applied to int,VociCd
i++;
if(i==dimensioni.length){
break;
}
}
cd.add(array_cd);
}
//end creazione
//stampo a video i risultati
for(int i=0;i<cd.size();i++){
Vector cdTemp = (Vector)cd.get(i);
for(int j=0;j<cdTemp.size();j++){
outputTextArea.append("cd:"+i+" "+cdTemp.get(j)+" ");
}
outputTextArea.append(System.getProperty("line.separator"));
}
res.close();
stat.close();
con.close();
}
catch (Exception e) {
outputTextArea.append("Problema: " + e.toString());
outputTextArea.append(System.getProperty("line.separator"));
}
}
}
questo è il mio problema..e poi non ho capito ancora una cosa, ma il campo dimensione che ho nel database e che raccoglie interi,deve essere numerico oppure testo che poi trasformo in intero quando faccio le operazioni?
ciao e grazie