Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140

    ancora problemi con le table

    ciao a tutti...
    ho il seguente problema: ho un pannello che contiene 5 table una sotto l'altra.... un unico scroll pane. Ho 5 button uno per table. Mi è stato dato il seguente compito: al click di un bottone andare scorrere il pannello e puntare alla tabella corrispondente...
    come si fa?
    grazieeee

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ancora problemi con le table

    Originariamente inviato da Aleb
    come si fa?
    Detto in generale, JScrollPane contiene un JViewport e puoi ottenerlo con getViewport(). JViewport ha un metodo setViewPosition(Point).

    Se tu riesci ad ottenere (e si può!) la locazione x,y di uno dei componenti contenuti all'interno del pannello che è nel JScrollPane ..... beh, puoi scrollare a quel punto!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    grazie mille ce l ho fatta.. seconda domdanda: come posso inseirire un Jbutton per ogni riga della tabella?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Aleb
    come posso inseirire un Jbutton per ogni riga della tabella?
    Centra con quanto chiesto prima??? Perché ora parli di "righe". Vuoi mettere dei pulsanti in ogni cella su una certa colonna prestabilita del JTable?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    si è sempre la tabella di prima... si esatto un pulsante per ogni riga in una determinata colonna

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Aleb
    si esatto un pulsante per ogni riga in una determinata colonna
    Non è così banale. Se hai già avuto modo di vedere, JTable si basa su 2 entità per ogni colonna: un "renderer" e un "editor". Quindi dovresti implementare un renderer per visualizzare il pulsante e un editor per fare in modo che la cella possa comportarsi davvero come un pulsante. E nel model per quella colonna ci deve comunque essere qualcosa .... anche solo di fittizio, es. un null.
    Non l'ho mai fatto .... tecnicamente è sicuramente possibile farlo ma dovrei provarci ....

    E poi bisogna vedere se nei pulsanti, per ogni riga, ci devono essere testi diversi oppure va bene lo stesso identico testo per tutti. Se devono essere diversi, allora il valore nel model potrebbe benissimo essere il testo del pulsante.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    Guardando qua e là ho scritto questo. La colonna con i bottoni c'è, ma non riesco a premerli... xkè?

    codice:
    public class ColonnaBottoni extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener {
    
    	private boolean isPushed;
    	JTable table;
    	JButton renderButton;
    	JButton editButton;
    	String text;
    	
    	public ColonnaBottoni(JTable table, int column){
    		super();
    		this.table = table;
    		renderButton = new JButton();
    		editButton = new JButton();
    		editButton.addActionListener(this); 
    			
    		table.getColumnModel().getColumn(column).setCellRenderer(this);
    		table.getColumnModel().getColumn(column).setCellEditor(this);
    	}
    	
    	public void actionPerformed(ActionEvent e){
    		fireEditingStopped();
    	}
    	
    	 public Component getTableCellRendererComponent(JTable table, Object value,
    	                   boolean isSelected, boolean hasFocus, int row, int column) {
    	 if(value==null)
    		 renderButton.setText("");
    	 else
    		 renderButton.setText(value.toString());
    	 return renderButton;
    	 }
    	
     	 
    	  public Component getTableCellEditorComponent(JTable table, Object value,
    	                   boolean isSelected, int row, int column) {
    	    if(value == null)
    	    	text="";
    	    else
    	    	text=value.toString();
    	    
    	    editButton.setText(text);
    	    isPushed = true;
    	    return editButton;
    	  }
    	 
    	  public Object getCellEditorValue() {
    	    if (isPushed)  {
    	    	System.out.println("qui");
    	      JOptionPane.showMessageDialog(editButton ,text + ": Ouch!");
    	    }
    	    isPushed = false;
    	    return new String( text ) ;
    	  }

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Tra i miei Java Examples, sezione Tables, c'è un esempio completo. Non è ancora perfetto (voglio poi "rifinirlo" meglio) ma per il momento mi risulta che funziona. E tra l'altro mostra come "disaccoppiare" la gestione del pulsante dalla gestione dell'evento actionPerformed().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    scusa ma dove trovo questi esempi? grazie

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Aleb
    scusa ma dove trovo questi esempi? grazie
    Vedi mia firma .....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.