Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    [JAVA] JCalendarButton e JTimeButton

    Salve, sto usando la classe in oggetto, per avere dei bottoni grafici dove selezionare l'orario. Ho un'unico problema ovvero non è possibile aggiungere degli orari personalizzati... o almeno non ho capito come fare. Per esempio il JTimeButton contiene tutte le ore a distanza di 30 minuti, se volessi aggiungerne altre non so se è possibile. Aiuto please!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    si è quella ma ho bisogno di capire se è possibile aggiungere degli orari al JtimeButton !!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Sì, ma se non specifichi che libreria stai usando, visto che non è standard, hai voglia a ricevere risposte :P
    Comunque spulciando i sorgenti (non c'è tanta roba, sono solo 4 classi), ho trovato questo metodo in JTimePopup
    codice:
    public void layoutCalendar(Date timeTarget)
        {
            calendar.setTime(timeTarget);
            
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
            int minute = calendar.get(Calendar.MINUTE);
                    
            String[] array = new String[24 * 2];
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            int selectedIndex = -1;
            for (int i = 0; i < array.length; i++)
            {
                if (hour == calendar.get(Calendar.HOUR_OF_DAY))
                    if (minute == calendar.get(Calendar.MINUTE))
                        selectedIndex = i;
                Date time = calendar.getTime();
                String strTime = timeFormat.format(time);
                array[i] = strTime;
                calendar.add(Calendar.MINUTE, 30);
            }
            DefaultComboBoxModel model = new DefaultComboBoxModel(array);
            this.setVisibleRowCount(10);
            this.setModel(model);
            if (selectedIndex != -1)
                this.setSelectedIndex(selectedIndex);
        }
    che mi sa essere quello di tuo interesse, solo che non ci vedo un metodo per modificare quel
    codice:
    calendar.add(Calendar.MINUTE, 30);
    quindi dovresti ricompilare fixando quella riga con l'intervallo desiderato...per esempio, un minuto. Poi però se guardi più su, crea un array di solo 48 elementi (ci sono 48 mezz'ore in un giorno), e quindi credo che così vedresti solo i primi 48 minuti del giorno (00:00 - 00:47). Quindi ci sarebbe da sistemare anche quella (e diventa una combo infinita).
    Allora perché non utilizzare un prodotto forse più maturo? Per esempio JCalendar http://toedter.com/jcalendar/ che se non ricordo male, consente customizzazioni più profonde?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    scusa forse non sono stato chiaro ti ho risposto che la libreria è la prima che hai postato. Il prodotto che mi hai indicato non ha anche un gestore delle ore?
    Ultima modifica di linux_r; 13-05-2014 a 18:01

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    E mi scuso io perché ti stavo mandando fuori strada con JCalendar. In effetti dove l'ho usato io, ho poi aggiunto uno JSpinner per gli orari. Ad esempio
    codice:
    import javax.swing.*;
    import java.util.*;
    import com.toedter.calendar.*;
    /**
     *
     * @author Andrea
     */
    public class JCalendarAndSpinner extends JFrame {
        
        public static JPanel extendedDatePanel(Date value) {
            JPanel datePanel = new JPanel();
            
            JDateChooser dateChooser = new JDateChooser(value, "dd-MM-yyyy");        
                    
            datePanel.add(dateChooser);
            
            SpinnerModel model = new SpinnerDateModel();
            JSpinner timeSpinner = new JSpinner(model);
            JComponent editor = new JSpinner.DateEditor(timeSpinner, "HH:mm");
            timeSpinner.setEditor(editor);        
            datePanel.add(timeSpinner);
            
            return datePanel;
        }
        
        public JCalendarAndSpinner() {
            super("Test funzionalità");
            this.setSize(300,100);
            this.getContentPane().add(extendedDatePanel(null));
            this.setVisible(true);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
            
        }
        
        public static void main (String[] args) {
            new JCalendarAndSpinner();
        }
        
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    ho risolto modificando il metodo della libreria precedente...

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.