Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    9

    Problemi ad aggiungere ad un programma in java la parte GUI(grafica)

    Spiego il programma e poi i problemi...
    Uso netBeans
    Ho creato un prog che mi salva oggetti di tipo cd in un arreylist in modo da avere una collezione.
    ho 3 file
    cd.java(costruttore di ogg con i vari get/set),
    ElencoCd.java(Definisco metodi di aggiunta/rimozione/modifica/salva su file ecc),
    main.java(mando in esecuzione e faccio test per ogni metodo)
    Fin qui tutto bene e funzionante

    Ora devo implementare la gui...
    Con NetBens creo un primo file per il JFrame (public class NewJFrame extends javax.swing.JFrame) e altri 2 per creare 2 JPanel diversi tipo (Ad ESEMPIO public class Paneladdcd extends javax.swing.JPanel per aggiungere i cd)
    Riesco bene a sostituire i pannelli nel JFrame utilizzando setContentPane();
    (la faccio semplice ma ho veramente sbattuto la testa a muro per arrivare fino a qui)

    Qui colpa la mia ignoranza in materia nascono i problemi.. non mi usano i metodi per operare sull' arreylist. Dovendo caricare all'arreylist lo dichiaro subito come prima cosa nel main

    //----------Inizzializzo il mio ArreyList
    ElencoCd musica = new ElencoCd();

    musica.Caricamentocd();

    se uso in un Jbutton il metodo addCD che sarebbe per aggiungere
    private void jButtonAddActionPerformed(java.awt.event.ActionEve nt evt) {
    musica.addCD(jTextField1.getText(),...,jTextField4 .getText());}
    mi dice che non esiste la classe musica ...che in realtà e il nome dellArrey!!

    Cosa sto sbagliando?? non so proprio da che lato affrontare la cosa...
    Chiedo aiuto

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non è molto chiaro quello che hai scritto...
    Per iniziare posta del codice per dare un po' di contesto e riporta l'errore esatto comunicato dal compilatore.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    intanto si dice ArrayList se lo scrivi così all'esame ti cacciano
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    9
    ECCO PRIMA LE MIE 3 CLASSI CD, ELENCOCD, MAIN CHE FUNZ

    public class Cd implements java.io.Serializable{
    private static final long serialVersionUID = 8742922483511444653L;

    protected String titolo;
    protected String artista;
    protected String tempoTot;
    protected String commenti;
    protected boolean possesso;
    public String tracce;

    public Cd(String titolo, String artista, String tempoTot, String commenti, boolean possesso, String tracce) {
    this.titolo = titolo;
    this.artista = artista;
    this.tempoTot = tempoTot;
    this.commenti = commenti;
    this.possesso = possesso;
    this.tracce = tracce;
    }

    public String getArtista() {
    return artista;
    }

    public void setArtista(String artista) {
    this.artista = artista;
    }

    public String getCommenti() {
    return commenti;
    }

    public void setCommenti(String commenti) {
    this.commenti = commenti;
    }

    public boolean isPossesso() {
    return possesso;
    }

    public void setPossesso(boolean possesso) {
    this.possesso = possesso;
    }

    public String getTempoTot() {
    return tempoTot;
    }

    public void setTempoTot(String tempoTot) {
    this.tempoTot = tempoTot;
    }

    public String getTitolo() {
    return titolo;
    }

    public void setTitolo(String titolo) {
    this.titolo = titolo;
    }

    public String getTracce() {
    return tracce;
    }

    public void setTracce(String tracce) {
    this.tracce = tracce;
    }


    public String toString() {

    String mio = "";
    if (possesso == false) {
    mio = "prestato";
    } else {
    mio = "In possesso";
    }

    String stampa = "";
    stampa += titolo + "\t" + artista + "\t" + tempoTot + "\t" + commenti + "\t" + mio + "\t" + tracce;
    return stampa;
    }

    }
    --------------------------------------------------------

    import java.io.BufferedOutputStream;
    import java.io.EOFException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.PrintStream;
    import java.util.ArrayList;

    /**
    *
    * @author Mister_M
    */
    public class ElencoCd {

    public ArrayList<Cd> elenco;

    public ElencoCd() {
    elenco = new ArrayList<Cd>();
    }



    public ArrayList<Cd> getElenco() {
    return elenco;
    }

    public void setElenco(ArrayList<Cd> elenco) {
    this.elenco = elenco;
    }

    public void addCD(String titolo, String artista, String tempoTot, String commenti, boolean possesso, String tracce) {
    Cd c = new Cd(titolo, artista, tempoTot, commenti, possesso, tracce);
    elenco.add(c);
    }

    // metodo per modificare i 2 oggetti passando prima l'ogg da modif
    public void modificaCd(Cd cd, String tit, String art, String tempo, String comm, boolean poss, String trac) {
    cd.setTitolo(tit);
    cd.setArtista(art);
    cd.setTempoTot(tempo);
    cd.setPossesso(poss);
    cd.setCommenti(comm);
    cd.setTracce(trac);
    }

    public String toString() {

    String report = "*****************************************\n";
    report += "My CD Collection\n\n";
    report += "Numero di CD : " + elenco.size() + "\n";
    report += "\n\n CD List:\n\n";
    report += "Titolo" + "\t" + "Artista" + "\t" + "TempoTot" + "\t" + "Commenti" + "\t" + "Possesso" + "\t" + "Tracce\n";

    for (int i = 0; i < elenco.size(); i++) {
    report += elenco.get(i) + "\n";
    }

    return report;
    }
    //Carico da dbcd.txt ogg precaricati di tipo Cd
    void Caricamentocd() {
    try {
    ObjectInputStream objIn = new ObjectInputStream(new FileInputStream("dbcd.txt"));
    boolean check = true;
    while (check) {
    try {
    Cd object = (Cd) objIn.readObject();
    elenco.add((Cd) object);
    } catch (EOFException ex) {
    check = false;
    }
    }
    objIn.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    // Salvo/Scrivo dall' ArreyList gli oggetti nel file dbdvd.txt in modo da poterli ricaricare all'avvio del programma
    public void SalvataggioCd() throws IOException {
    Cd disc = null;
    try {
    ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("dbcd.txt")));

    for (int i = 0; i < elenco.size(); i++) {
    disc = (Cd) elenco.get(i);
    oos.writeObject(disc); // scrivo l'oggetto
    }
    oos.close();
    } catch (IOException e) {
    System.out.println("Errore: " + e);
    System.exit(1);
    }

    }

    public void RicercaPerTitolo(String titolo) {
    boolean b = false;
    Cd disc;
    for (int i = 0; i < elenco.size(); i++) {
    disc = (Cd) elenco.get(i);
    if (titolo.toLowerCase().equals(disc.titolo.toLowerCa se())) {
    b = true;
    if (b == true) {
    System.out.println("Disco Esistente");
    System.out.println(disc);
    } else {
    System.out.println("Nessuna corrispondenza");
    }
    }


    }
    }

    public void RicercaPerArtista(String artista) {
    boolean b = false;
    Cd disc;
    for (int i = 0; i < elenco.size(); i++) {
    disc = (Cd) elenco.get(i);
    if (artista.toLowerCase().equals(disc.artista.toLower Case())) {
    b = true;
    if (b == true) {
    System.out.println("Disco Esistente");
    System.out.println(disc);
    } else {
    System.out.println("Nessuna corrispondenza");
    }
    }


    }
    }

    //Crea un file txt dove stampa il contenuto dell ArreyLISt come stringe un ogg per riga
    public void StampaSuFile() {
    Cd a = null;
    try {
    FileOutputStream fos = new FileOutputStream("prova.txt");
    PrintStream scrivi = new PrintStream(fos);

    for (int i = 0; i < elenco.size(); i++) {
    a = (Cd) elenco.get(i);
    scrivi.println(a);
    }
    } catch (IOException e) {
    System.out.println("Errore: " + e);
    System.exit(1);
    }
    }

    //Metodo di controllo usando come parametri titolo e artista per controllare che l'oggetto non sia gia presente
    public boolean isStored(String titolo, String artista) {
    boolean isStored = false;
    Cd c = new Cd(titolo, artista, "", "", true,"");
    for (int i = 0; i < elenco.size(); i++) {
    if (c.getTitolo().equals(elenco.get(i).getTitolo()) && c.getArtista().equals(elenco.get(i).getArtista())) {
    isStored = true;
    }
    }
    return isStored;
    }

    }
    -------------------------------------------------------
    import java.io.*;

    public class Main {


    public static void main(String[] args) throws IOException, ClassNotFoundException, StreamCorruptedException {

    //----------Inizzializzo ArrayList
    ElencoCd musica = new ElencoCd()

    //-----------Il Caricamento funz per ora lo commento FUNZIONA
    //musica.Caricamentocd();


    musica.addCD("Storm Front", "Billy Joel", "110", "Commento a", true, "10");
    musica.addCD("Come on Over", "Shania Twain", "112", "Commento b", false, "16");
    musica.addCD("Soundtrack", "Les Miserable", "110", "Commento c", true, "33");
    musica.addCD("Graceland", "Paul Simon", "110", "Commento d", false, "11");


    //------Stampo i cd e i dvd
    System.out.print(musica);
    //-------Stampo su file prova.txt la mia collezzione come Stringhe FUNZIONA
    musica.StampaSuFile();

    //------Salvo su file dbcd.txte la mia collezzione come oggetti FUNZIONA
    //musica.SalvataggioCD();

    //-------Cancello un cd FUNZIONA
    // musica.elimina("Soundtrack", "Les Miserable");

    //-------Prova di semplice ricerca per titolo FUNZIONA
    musica.RicercaPerTitolo("Grceland");
    musica.RicercaPerTitolo("Graceland");

    }
    }
    --------------------------------

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    9
    QUI DI SEGUITO SCRIVO IL CODICE CHE TIRA FUORI NETBEANS EVIDENZIO QUELLO CHE HO SCRITTO
    Uso il main dentro la classe NewJFrame da quando sto provando a implementare la parte grafica... il main sopra riportato lo usavo prima per i test

    public class NewJFrame extends javax.swing.JFrame {


    /** Creates new form NewJFrame */
    public NewJFrame() {
    initComponents();
    }


    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {


    jPanel1 = new javax.swing.JPanel();
    jButton1 = new javax.swing.JButton();


    setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);


    jButton1.setText("jButton1");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    });


    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.Grou pLayout.Alignment.LEADING)
    .addGroup(jPanel1Layout.createSequentialGroup()
    .addGap(32, 32, 32)
    .addComponent(jButton1)
    .addContainerGap(518, Short.MAX_VALUE))
    );
    jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.Grou pLayout.Alignment.LEADING)
    .addGroup(jPanel1Layout.createSequentialGroup()
    .addGap(69, 69, 69)
    .addComponent(jButton1)
    .addContainerGap(302, Short.MAX_VALUE))
    );


    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addContainerGap())
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addContainerGap())
    );


    pack();
    }// </editor-fold>


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // aggiungo un jpanel di inserimento al click sul bottone
    PanelAdd add = new PanelAdd();
    jPanel1.setVisible(false);
    setContentPane(add);
    }


    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    ElencoCd musica = new ElencoCd();

    public void run() {
    new NewJFrame().setVisible(true);
    }
    });
    }


    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration


    }
    -----------------------------------

    public class PanelAdd extends javax.swing.JPanel {


    /** Creates new form PanelAdd */
    public PanelAdd() {
    initComponents();
    }

    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {


    jLabel4 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jLabel1 = new javax.swing.JLabel();
    jLabel5 = new javax.swing.JLabel();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTextArea1 = new javax.swing.JTextArea();
    jTextField4 = new javax.swing.JTextField();
    jTextField3 = new javax.swing.JTextField();
    jButtonStamp = new javax.swing.JButton();
    jButtonAdd = new javax.swing.JButton();
    jTextField2 = new javax.swing.JTextField();
    jTextField1 = new javax.swing.JTextField();
    jLabel6 = new javax.swing.JLabel();
    jCheckBox1 = new javax.swing.JCheckBox();
    jLabel4.setText("Num Tracce");
    jLabel3.setText("Tempo Tot");
    jLabel2.setText("Cantante/gruppo");
    jLabel1.setText("Titolo");
    jLabel5.setText("Commenti");
    jTextArea1.setColumns(20);
    jTextArea1.setRows(5);
    jScrollPane1.setViewportView(jTextArea1);
    jTextField4.setText("jTextField4");
    jButtonStamp.setText("Stampa");
    jButtonStamp.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButtonStampActionPerformed(evt);
    }
    });


    jButtonAdd.setText("Inserimento");
    jButtonAdd.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButtonAddActionPerformed(evt);
    }
    });


    jLabel6.setText("In Possesso");


    jCheckBox1.setText("jCheckBox1");


    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    this.setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
    .addGap(0, 621, Short.MAX_VALUE)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
    .addComponent(jLabel4)
    .addComponent(jLabel3)
    .addComponent(jLabel2)
    .addComponent(jLabel1)
    .addComponent(jLabel5))
    .addGap(37, 37, 37)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING, false)
    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
    .addComponent(jTextField3)
    .addGap(18, 18, 18)
    .addComponent(jButtonStamp)))
    .addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED, 101, Short.MAX_VALUE)
    .addComponent(jButtonAdd)
    .addContainerGap())
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.TRAILING)
    .addComponent(jTextField2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)
    .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
    .addGap(19, 19, 19)
    .addComponent(jLabel6)
    .addGap(44, 44, 44)
    .addComponent(jCheckBox1)
    .addGap(38, 38, 38))))
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
    .addGap(0, 404, Short.MAX_VALUE)
    .addGroup(layout.createSequentialGroup()
    .addGap(37, 37, 37)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jCheckBox1)
    .addComponent(jLabel1)
    .addComponent(jLabel6))
    .addGap(27, 27, 27)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jLabel2))
    .addGap(36, 36, 36)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jLabel3)
    .addComponent(jButtonStamp))
    .addGap(35, 35, 35)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jLabel4))
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
    .addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
    .addComponent(jButtonAdd, javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(layout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.Component Placement.UNRELATED)
    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addGroup(layout.createSequentialGroup()
    .addGap(18, 18, 18)
    .addComponent(jLabel5)))
    .addContainerGap(59, Short.MAX_VALUE))
    );
    }// </editor-fold>


    private void jButtonStampActionPerformed(java.awt.event.ActionE vent evt) {
    }

    private void jButtonAddActionPerformed(java.awt.event.ActionEve nt evt) {
    // aggiungo cd al click sul bottone
    musica.addCD(jTextField1.getText(),jTextField2.get Text(),jTextField3.getText(),jTextArea1.getText(), jCheckBox1.isSelected(),jTextField4.getText());
    queste 2 righe sono l'errore che mi sa in compilazioneCreate class"musica" in package
    Create Field musica in PanelAdd

    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButtonAdd;
    private javax.swing.JButton jButtonStamp;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    // End of variables declaration


    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    9
    Ho risolto il problema.

    nel costruttore del JFrame inizializzo un ArrayList della mia classe ElencoCd

    private static ElencoCd musica;

    public NewJFrame() throws IOException {
    musica = new ElencoCd();
    musica.Caricamentocd();
    initComponents();
    }
    che poi lo passo come parametro a tutti i miei JPanel in modo da averlo sempre a disposizione

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEve nt evt) {
    // Visualizzo il Jpanel di Inserimento Cd
    Paneladdcd add = new Paneladdcd(musica);
    setContentPane(add);
    validate();
    }

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.