Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    unite un JTable con i CheckBox

    ciao ragazzi ho un problema(come al solito!)

    in pratica io ho una tabella, però ho bisogno di mettere per ogni riga un checkBox a sinistra,
    questo è il mio codice:
    codice:
     String[] nome ={ "nome", "indirizzo", "path", "dimensione","directory", "contenuto"};
            JCheckBox box = new JCheckBox();
            TableColumn colonna = new TableColumn();
            
            JTable tab = new JTable(tabella2, nome);
            colonna.setResizable(false);//non può ridimensionale la cella
            colonna.setMaxWidth(5); 
            tab.addColumn(colonna);
            p_job.add(tab,c);
              tab.moveColumn(6,0);  //sposta la colonna 6 in 0
            JScrollPane scroll = new JScrollPane(tab);
    come faccio ad unire i checkbox con la tabella usando un unico scroll?

    grazie

    ciao
    quando il diavolo ti accarezza è perchè vuole la tua anima

  2. #2
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    per favore rispondetemi
    quando il diavolo ti accarezza è perchè vuole la tua anima

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io non ho ben capito cosa vuoi fare.
    Se il tuo scopo è quello di visualizzare delle CheckBox in una particolare colonna della tabella, allora devi creare il tuo TableModel.
    Per questo dovresti seguire il tutorial che la Sun ha predisposto sull'utilizzo delle JTable.
    Lo puoi trovare qui


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    ciao senti volevo sapere come si fa ad assegnare il tipo di dati ad un object
    codice:
    Object[][]  tabella2= new Object[6][10]
    e poi se metto alla colonna invece del tipo String, mettessi Boolean(false), mi uscirebbe il flag come in allegato?
    quando il diavolo ti accarezza è perchè vuole la tua anima

  5. #5
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    come in colonna "vegetarian"
    quando il diavolo ti accarezza è perchè vuole la tua anima

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Viene spiegato tutto nel tutorial.
    Si costruisce un TableModel che per ciascuna colonna identifica il tipo di dato e di conseguenza, il relativo TableCellRenderer da usare.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da gax80
    ciao senti volevo sapere come si fa ad assegnare il tipo di dati ad un object
    codice:
    Object[][]  tabella2= new Object[6][10]
    e poi se metto alla colonna invece del tipo String, mettessi Boolean(false), mi uscirebbe il flag come in allegato?
    No, non basta, devi creare un tuo "table model" (una classe che deriva da AbstractTableModel) in modo che quando gli viene richiesta la classe della colonna, tu fai ritornare Boolean.class per la colonna dove vuoi avere il checkbox.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    senti ho eseguito il link che mi avete dato e funziona solo che a schermo non mi esce subito la tabella, ma devo cliccare a caso e mi riappare tutto
    ho provato con validate ma nn fa nulla

    questo è il codice che ho messo
    codice:
       String[] nome ={"s", "nome", "indirizzo", "path", "dimensione","directory", "contenuto"};
            JCheckBox box = new JCheckBox();
            //TableColumn colonna = new TableColumn();
            //TableModel myData = new TableModel(); 
      	
            JTable tab = new JTable(new MyTableModel()); //chiamata 
            //tab.setPreferredScrollableViewportSize(new Dimension(500, 70));
            tabella2[1][2]= "5";
            //colonna.setResizable(false);//non può ridimensionale la cella
            //colonna.setMaxWidth(5); 
          
            //tab.addColumn(colonna);

    e questo è la classe del modello tabella

    codice:
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.JTableHeader;
    class MyTableModel extends AbstractTableModel {
       private Object [][] data = {
        {"Mary", "Campione",
         "Snowboarding", new Integer(5), new Boolean(false)}};
         //,Object[6][9];
          private  String[] columnNames ={"s", "nome", "indirizzo", "path", "dimensione","directory", "contenuto"};
    
        public int getColumnCount() {
            return columnNames.length;
        }
    
        public int getRowCount() {
            return data.length;
        }
    
        public String getColumnName(int col) {
            return columnNames[col];
        }
    
        public Object getValueAt(int row, int col) {
            return data[row][col];
        }
    
        public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }
    
        /*
         * Don't need to implement this method unless your table's
         * editable.
         */
        public boolean isCellEditable(int row, int col) {
            //Note that the data/cell address is constant,
            //no matter where the cell appears onscreen.
            if (col < 2) {
                return false;
            } else {
                return true;
            }
        }

    cosa sbaglio?


    :quote: :quote:
    quando il diavolo ti accarezza è perchè vuole la tua anima

  9. #9
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    oltre al fatto che mi esce questo errore


    codice:
    aException in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 5
            at MyTableModel.getValueAt(mytable.java:61)
            at MyTableModel.getColumnClass(mytable.java:66)
            at javax.swing.JTable.getColumnClass(JTable.java:1833)
            at javax.swing.JTable.getCellRenderer(JTable.java:3878)
            at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1644)
            at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1547)
            at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1470)
            at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
            at javax.swing.JComponent.paintComponent(JComponent.java:740)
            at javax.swing.JComponent.paint(JComponent.java:1003)
            at javax.swing.JComponent.paintChildren(JComponent.java:840)
            at javax.swing.JComponent.paint(JComponent.java:1012)
            at javax.swing.JViewport.paint(JViewport.java:728)
            at javax.swing.JComponent.paintChildren(JComponent.java:840)
            at javax.swing.JComponent.paint(JComponent.java:1012)
            at javax.swing.JComponent.paintChildren(JComponent.java:840)
            at javax.swing.JComponent.paint(JComponent.java:1012)
            at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4930)
            at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4883)
            at javax.swing.JComponent._paintImmediately(JComponent.java:4826)
            at javax.swing.JComponent.paintImmediately(JComponent.java:4633)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
            at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    quando il diavolo ti accarezza è perchè vuole la tua anima

  10. #10
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    oltrel fatto che i bottoni si visualizzano al passaggio del mouse, mentre ogni campo delle tabelle bisogna cliccarle x visualizzarle

    aiuttoooo
    quando il diavolo ti accarezza è perchè vuole la tua anima

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 © 2026 vBulletin Solutions, Inc. All rights reserved.